How carsonmcmahan/black-jack works
Blackjack CLI is a terminal game: the player enters a name, chip balance, bets, and actions; the CLI passes those choices to Game, which manages rounds, deals cards, runs the dealer, and settles payouts. The README documents hit, stand, double down, split, fixed dealer rules, and blackjack payouts. The graph includes the game’s core domain types and shared hand logic. Relationships reflect the excerpts and README; unsampled features are not linked speculatively.
Main entry points: Game.ts Game coordinator · index.ts Terminal CLI · Card.model.ts Card type · Hand.ts Hand evaluation
Components 13
Terminal interaction
- Terminal CLI
src/index.ts - Terminal colors
src/lib/lib.ts
Round orchestration
- Game coordinator
src/game/Game.ts
Blackjack domain
- Card deck
src/game/Deck.ts - Player hand and bets
src/game/Player.ts - Dealer hand
src/game/Dealer.ts - Hand evaluation
src/game/Hand.ts - Card type
src/models/Card.model.ts - Card ranks
src/models/Rank.model.ts - Card suits
src/models/Suit.model.ts - Game status
src/models/GameStatus.model.ts - Round result
src/models/GameResult.model.ts
Other components
- Player
Connections 15
- Player → Terminal CLI: provides input
src/index.ts - Terminal CLI → Game coordinator: calls game
src/index.ts - Terminal CLI → Terminal colors: formats errors
src/index.ts - Game coordinator → Player hand and bets: manages bets
src/game/Game.ts - Game coordinator → Card deck: deals cards
src/game/Game.ts - Game coordinator → Dealer hand: runs dealer
src/game/Game.ts - Game coordinator → Hand evaluation: tracks current hand
src/game/Game.ts - Game coordinator → Terminal colors: formats output
src/game/Game.ts - Game coordinator → Game status: sets turn state
src/game/Game.ts - Game coordinator → Round result: uses round result
src/game/Game.ts - Player hand and bets → Hand evaluation: extends
src/game/Player.ts - Dealer hand → Hand evaluation: extends
src/game/Dealer.ts - Card deck → Card type: creates cards
src/game/Deck.ts - Card type → Card ranks: uses rank
src/models/Card.model.ts - Card type → Card suits: uses suit
src/models/Card.model.ts