JuX · Training Project · AOS
HOLDEM.TRAINING
Build Texas Hold'em from the 5-Card Draw model.
Project Expression
NAME
HOLDEM.TRAINING
FACT
A Training Project. The student receives a working model (5-Card Draw) and extends it into Texas Hold'em. Same card engine. Same chip system. New flow.
TARGET
Playable 2-player Texas Hold'em in browser. No server. No framework. Pure JS.
The Model — 5-Card Draw (Given)
| NAME | FACT | TARGET |
|---|---|---|
| renderCard() | Renders one card — rank corners, suit center, red/black | Reuse unchanged |
| evaluateHand() | Ranks 5 cards — Pair → Royal Flush | Reuse unchanged |
| Chips | 100 per player, ante 10, displayed top bar | Extend with betting rounds |
| Phase engine | Deal → Hold → Draw → Showdown | Replace with Hold'em flow |
| Deck | 52 cards, shuffled, dealt by index | Reuse unchanged |
The Delta — What the Student Builds
| COMPONENT | 5-Card Draw (Model) | Hold'em (Project) |
|---|---|---|
| Private cards | 5 per player | 2 per player (hole cards) |
| Community cards | None | 5 shared — Flop(3) + Turn(1) + River(1) |
| Best hand | 5 of your 5 | Best 5 of 7 (2 hole + 5 community) |
| Betting rounds | None (ante only) | Pre-flop / Flop / Turn / River |
| Actions | Hold / Draw | Check / Bet / Call / Fold |
| Phase engine | 4 phases | 6 phases |
Formal Sentences (AOS)
deal(player, 2) → hole cards
deal(community, 3) → flop
deal(community, 1) → turn
deal(community, 1) → river
evaluate(hole + community) → best_hand(5)
compare(best_hand(P1), best_hand(P2)) → winner
Training Dictionary — Milestones
| NAME | FACT | TARGET |
|---|---|---|
| M1 — DEAL | Deal 2 hole cards per player. Display face-down for P2. | Same as Draw model. Copy + trim. |
| M2 — COMMUNITY | Reveal Flop, Turn, River one click each. | 3 new DOM slots. 3 new phase steps. |
| M3 — BEST HAND | Pick best 5 from 7. evaluateHand() takes 5 — generate all C(7,2) combos. | bestOf7(hand, community) → score |
| M4 — BETTING | Check / Bet / Call / Fold buttons per round. Simple: no raise limit. | pot += bet. winner takes pot. |
| M5 — SHOWDOWN | Flip P2 hole cards. Compare best hands. Declare winner. | compare() already exists in model. |
The Rule
execute(HOLDEM.TRAINING, JeuX.DICTIONARY) → Playable Hold'em
Verdict
The model is 80% of the project. The student does not start from zero — they start from a working system and extend it. Five milestones. Each one compiles. Each one runs. No dead ends.
Hold'em is not a new game. It is 5-Card Draw with community cards and a betting protocol. The architecture is the same. Only the flow changes.
Hold'em is not a new game. It is 5-Card Draw with community cards and a betting protocol. The architecture is the same. Only the flow changes.