Strategic Analysis with ODE-Based Value Computation
No game in progress
No events yet
ODE analysis will appear here
Learn how this poker game models complex game state using Petri nets
Texas Hold'em flows through distinct betting rounds, modeled as places:
waiting - Before hand startspreflop - After hole cards dealtflop - After 3 community cardsturn_round - After 4th cardriver - After 5th cardshowdown - Final comparisonTransitions like deal_flop move a token from preflop to flop,
but only when all betting is complete.
Each player's turn is tracked with dedicated places:
p0_turn - Player 0's turn to actp0_active - Player 0 still in handWhen a player acts (fold/check/call/raise), their turn token moves to the next player:
p0_turn →(p0_raise)→ p1_turn
When a player folds, tokens are removed from both pN_turn and pN_active,
preventing them from acting again this hand.
Certain transitions require specific roles to fire:
Beyond roles, transitions can have guards—conditions that must be true:
p0_raise: guard = "chips[0] >= current_bet"
This ensures a player can only raise if they have enough chips.
The go-pflow library computes hand strength using ODE simulation:
The "Strategic Analysis" panel shows computed values for each action based on:
Every action creates an immutable event stored in order:
{type: "HandStarted", dealer: 2, blinds: [50, 100]}
{type: "FlopDealt", cards: ["Ah", "Kd", "7c"]}
{type: "P0Raised", amount: 200}
{type: "P1Called", amount: 200}