Add complete Texas Hold'em poker gameplay including: - Pure function game engine (deck, dealing, betting, showdown) - Hand evaluator supporting all 10 poker hand ranks - Animated card components with 3D flip transitions - CSS Grid oval poker table layout for up to 9 seats - Player seat components with chip tracking and turn indicators - Bet controls with conditional button visibility - Basic AI opponents with random valid action selection - Turn advancement, all-in auto-advance, and dealer rotation Sync delta specs to main specs: poker-table, card-components, game-engine, player-state.
3.0 KiB
3.0 KiB
ADDED Requirements
Requirement: Player seat model
Each player seat SHALL be represented by a model containing: ID, name, chip count, current bet, status (active/folded/all-in), hole cards, and position index.
Scenario: Player initialized with starting stack
- WHEN a new game is created
- THEN each player seat has the configured starting chip count and active status
Scenario: Folded player marked correctly
- WHEN a player folds during a hand
- THEN their status changes to folded and they cannot take further actions that hand
Scenario: All-in player tracked separately
- WHEN a player bets all remaining chips
- THEN their status changes to all-in and they are excluded from further betting but remain active for showdown
Requirement: Dealer position tracking
The game state SHALL track the current dealer button position as an index that rotates clockwise after each hand.
Scenario: Dealer starts at random position
- WHEN a new game session begins
- THEN the initial dealer position is set to a random seat index
Scenario: Dealer rotates clockwise
- WHEN a hand completes
- THEN the dealer position advances by one seat in clockwise order (wrapping from last seat to first)
Requirement: Action history recording
The game state SHALL maintain an action history log for each hand, recording player actions with timestamps.
Scenario: Actions recorded during betting
- WHEN a player takes an action (check, call, raise, fold, all-in)
- THEN the action is appended to the current hand's action history with the player ID and action type
Scenario: History cleared between hands
- WHEN a new hand begins
- THEN the previous hand's action history is archived and a new empty history is created
Requirement: Chip balance updates
Player chip counts SHALL be updated atomically when bets are placed, pots are awarded, or blinds are posted.
Scenario: Chips deducted on bet
- WHEN a player places a bet amount
- THEN their chip count decreases by the bet amount and the pot increases accordingly
Scenario: Chips awarded on win
- WHEN a player wins the pot
- THEN their chip count increases by the full pot amount and the pot resets to zero
Scenario: Blinds deducted automatically
- WHEN a new hand begins
- THEN the small blind amount is deducted from the small blind player's chips and the big blind amount from the big blind player's chips
Requirement: Current turn tracking
The game state SHALL track which player ID has the current turn to act, enabling the UI to highlight the active player.
Scenario: Turn starts left of dealer pre-flop
- WHEN a hand begins dealing
- THEN the first action turn is assigned to the player one seat left of the dealer button (after big blind)
Scenario: Turn advances to next active player
- WHEN a player completes their action
- THEN the turn advances to the next active (non-folded, non-all-in) player in clockwise order