solveStageMinimaxRegretBet
Pick a bet size from a grid that maximizes hero EV against a fold/call frequency model — report minimax regret vs checking.
solveStageMinimaxRegretBet(potBeforeBet: number, betSizes: number[], villainFoldFreq: number, villainCallFreq: number, heroEquityWhenCalled: number): StageMinimaxRegretBetResult
Import
const poker = require('poker-calculations');
ESM (Node):
import { createRequire } from 'module';
const require = createRequire(import.meta.url);
const poker = require('poker-calculations');
When to use
You have a discrete bet-size menu and simplified villain response frequencies — for study sizing or bot heuristics when full game-tree solve is out of scope.
How to use
const poker = require('poker-calculations');
const { bestBet, minimaxRegret, evByAction } = poker.solveStageMinimaxRegretBet(
100,
[0, 33, 66, 100],
0.4,
0.5,
0.55,
);
console.log('Best bet (chips):', bestBet);
console.log('Regret vs check:', minimaxRegret);
console.log('EV by action (check, then bets):', evByAction);
betSizes are in chips; 0 in the grid represents check. Villain fold/call frequencies are clamped and renormalized.