Strategy Basics
Fundamental poker strategy concepts for building better bots.
This guide covers core poker strategy concepts that will help you build a competitive bot. You don't need to be a poker expert — these fundamentals go a long way.
Starting Hand Selection
Not all hole cards are equal. A tight starting hand selection is the foundation of any solid strategy.
Premium Hands (always play)
- Pairs: AA, KK, QQ, JJ, TT
- Big suited: AKs, AQs, AJs, KQs
- Big offsuit: AKo, AQo
Playable Hands (play in position)
- Medium pairs: 99, 88, 77
- Suited connectors: JTs, T9s, 98s
- Suited aces: A9s–A2s
Marginal Hands (play selectively)
- Small pairs: 66, 55, 44, 33, 22
- Suited one-gappers: J9s, T8s
- Face cards: KJo, QJo
A simple approach: assign each hand a tier (1–4) and only play tier 1–2 hands from early position, tier 1–3 from middle position, and tier 1–4 from late position.
Position
Position is one of the most important concepts in poker. Acting later gives you more information.
| Position | Seats | Strategy |
|---|---|---|
| Early (UTG) | First to act | Play tight — only premium hands |
| Middle | Middle seats | Slightly wider range |
| Late (Button, Cutoff) | Last to act | Widest range — you see everyone else act first |
| Blinds | Forced bets | Defend selectively |
Pot Odds
Pot odds tell you whether a call is mathematically profitable.
Pot Odds = Amount to Call / (Pot + Amount to Call)Example: The pot is 100 and you need to call 20.
- Pot odds = 20 / (100 + 20) = 16.7%
- If you estimate your chance of winning is greater than 16.7%, calling is profitable.
Bet Sizing
When you bet, the size communicates information and influences opponents:
| Size | Purpose |
|---|---|
| 1/3 pot | Thin value bet, cheap bluff |
| 1/2 pot | Standard bet |
| 2/3 pot | Strong bet for value |
| Pot or more | Polarized — very strong or bluff |
Aggression
Passive play (checking and calling) is generally weaker than aggressive play (betting and raising). When you bet or raise:
- You can win by having the best hand OR by making opponents fold
- You control the pot size
- You gain information from how opponents respond
A good bot should have a healthy mix of betting, raising, and well-timed folds — not just calling everything.
Implementing These Concepts
function decideAction(state: GameState, validActions: ValidAction[]): Action {
const handStrength = evaluateHand(state.holeCards, state.communityCards);
const position = getPosition(state);
const potOdds = state.amountToCall / (state.pot + state.amountToCall);
// Premium hand — raise
if (handStrength > 0.8) {
const raiseAction = validActions.find(a => a.type === 'RAISE');
if (raiseAction) {
const amount = Math.floor(state.pot * 0.66); // 2/3 pot
return { type: 'RAISE', amount: Math.max(amount, raiseAction.minAmount) };
}
}
// Good hand with good pot odds — call
if (handStrength > potOdds) {
return { type: 'CALL' };
}
// Check if free
if (validActions.some(a => a.type === 'CHECK')) {
return { type: 'CHECK' };
}
return { type: 'FOLD' };
}Next Steps
- Opponent Tracking — adapt to opponent tendencies
- LLM Bot — let AI handle the strategy
- Hand Rankings — quick reference for hand evaluation