Phase 1: Requirements & Use Cases
Interviewer: "Design the Snake and Ladder board game."
Candidate: "Sure. Let me make sure I understand the scope. I'm thinking of a turn-based board game where multiple players roll dice, advance along a numbered grid, and either climb ladders or slide down snakes. The first player to reach the final square wins. Does that match what you have in mind?"
Interviewer: "Yes. What clarifying questions do you have?"
Candidate: "A few things I want to nail down before modeling. First — board size: standard is 10×10, positions 1–100? Second — how many players, and is it configurable? Third — dice configuration: one standard six-sided die, or multiple dice? Fourth — any special rules like rolling a 6 grants an extra turn, or three consecutive 6s sends you back to start?"
Interviewer: "Standard 10×10, 2–4 players, single die. Let's say rolling a 6 gives an extra turn but skip the three-6s rule for now."
Candidate: "Perfect. Let me define the actors and use cases. Actors: the
Player(human or AI), and theGameengine that orchestrates everything. The core use cases are: (1) start a new game with configured players, snakes, and ladders; (2) a player rolls the dice and moves; (3) landing on a snake's head — player slides to the tail; (4) landing on a ladder's base — player climbs to the top; (5) detect win condition when a player reaches exactly 100; (6) boundary check — overshooting 100 means the player stays in place."Interviewer: "Should…
In the full tutorial
- Phase 2: Object Modeling
- Phase 3: Class Design & Relationships
- Phase 4: Design Patterns Application
- Phase 5: Key Implementation
- Phase 6: Extensibility & Trade-offs
- Executive Summary