PracHub
QuestionsPremiumCoachesLearningGuidesInterview Prep
|Home/Software Engineering Fundamentals/Google

Design an object-oriented poker game

Last updated: Mar 29, 2026

Quick Overview

This question evaluates object-oriented design and system modeling skills, including abstraction, class responsibilities, object relationships, and domain-driven decomposition, alongside the ability to specify deterministic logic for comparing game outcomes; it is commonly asked to gauge architectural thinking, clarity in modeling complex rules, and designing extensible, testable systems. Classified under Software Engineering Fundamentals, the prompt is primarily a conceptual design exercise with practical implementation aspects for class/interface definitions and interactions, and this summary is provided in English.

  • medium
  • Google
  • Software Engineering Fundamentals
  • Software Engineer

Design an object-oriented poker game

Company: Google

Role: Software Engineer

Category: Software Engineering Fundamentals

Difficulty: medium

Interview Round: Onsite

Design the object-oriented architecture for a command-line poker game. ## Requirements (clarify and state assumptions) Assume a standard 52-card deck (no jokers). Support **N players** (e.g., 2–8). The system should: 1. **Model core entities**: cards, deck, players, hands, game/table. 2. **Shuffle and deal** cards correctly. 3. **Run a round** of poker (you may choose a concrete variant such as **5-card draw** or **Texas Hold’em**; state which one you implement). 4. **Evaluate and compare hands** to determine the winner(s), including ties. 5. Be **extensible** for future features (e.g., different poker variants, multiple rounds, betting rules). ## Deliverables - Key classes/interfaces and their responsibilities. - Relationships between objects (composition/inheritance where appropriate). - Main flow for starting a game and completing one round. - How hand ranking is implemented and tested.

Quick Answer: This question evaluates object-oriented design and system modeling skills, including abstraction, class responsibilities, object relationships, and domain-driven decomposition, alongside the ability to specify deterministic logic for comparing game outcomes; it is commonly asked to gauge architectural thinking, clarity in modeling complex rules, and designing extensible, testable systems. Classified under Software Engineering Fundamentals, the prompt is primarily a conceptual design exercise with practical implementation aspects for class/interface definitions and interactions, and this summary is provided in English.

Related Interview Questions

  • Process Sharded Login Logs - Google (medium)
  • Design an ads retrieval service using a heap - Google (easy)
  • Design a waitlist manager - Google (easy)
  • Design an editable sequence with marker - Google (medium)
  • Design a waitlist system with top/bottom K - Google (medium)
Google logo
Google
Jan 6, 2026, 12:00 AM
Software Engineer
Onsite
Software Engineering Fundamentals
10
0
Loading...

Design the object-oriented architecture for a command-line poker game.

Requirements (clarify and state assumptions)

Assume a standard 52-card deck (no jokers). Support N players (e.g., 2–8). The system should:

  1. Model core entities : cards, deck, players, hands, game/table.
  2. Shuffle and deal cards correctly.
  3. Run a round of poker (you may choose a concrete variant such as 5-card draw or Texas Hold’em ; state which one you implement).
  4. Evaluate and compare hands to determine the winner(s), including ties.
  5. Be extensible for future features (e.g., different poker variants, multiple rounds, betting rules).

Deliverables

  • Key classes/interfaces and their responsibilities.
  • Relationships between objects (composition/inheritance where appropriate).
  • Main flow for starting a game and completing one round.
  • How hand ranking is implemented and tested.

Solution

Show

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...

Browse More Questions

More Software Engineering Fundamentals•More Google•More Software Engineer•Google Software Engineer•Google Software Engineering Fundamentals•Software Engineer Software Engineering Fundamentals
PracHub

Master your tech interviews with 8,000+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.