org.pokersource.enum

Class Enumerate


public class Enumerate
extends java.lang.Object

Algorithms for enumerating or sampling the outcomes of a poker hand matchup.
Author:
Michael Maurer <mjmaurer@yahoo.com>

Field Summary

static int
GAME_5DRAW
static int
GAME_5DRAW8
static int
GAME_5DRAWNSQ
static int
GAME_7STUD
static int
GAME_7STUD8
static int
GAME_7STUDNSQ
static int
GAME_HOLDEM
static int
GAME_HOLDEM8
static int
GAME_LOWBALL
static int
GAME_LOWBALL27
static int
GAME_OMAHA
static int
GAME_OMAHA8
static int
GAME_RAZZ

Method Summary

static void
PotEquity(int gameType, int nsamples, long[] pockets, long board, long dead, double[] ev)
Compute all-in pot equity of each player's hand, either by complete enumeration of outcomes or by monte carlo sampling.
static void
PotEquity(int gameType, int nsamples, long[] pockets, long board, long dead, double[] ev, int[][][] orderKeys, int[][] orderVals)
Compute all-in pot equity of each player's hand, either by complete enumeration of outcomes or by monte carlo sampling.
static void
main(String[] args)
A simple test of Enumerate methods.

Field Details

GAME_5DRAW

public static int GAME_5DRAW

GAME_5DRAW8

public static int GAME_5DRAW8

GAME_5DRAWNSQ

public static int GAME_5DRAWNSQ

GAME_7STUD

public static int GAME_7STUD

GAME_7STUD8

public static int GAME_7STUD8

GAME_7STUDNSQ

public static int GAME_7STUDNSQ

GAME_HOLDEM

public static int GAME_HOLDEM

GAME_HOLDEM8

public static int GAME_HOLDEM8

GAME_LOWBALL

public static int GAME_LOWBALL

GAME_LOWBALL27

public static int GAME_LOWBALL27

GAME_OMAHA

public static int GAME_OMAHA

GAME_OMAHA8

public static int GAME_OMAHA8

GAME_RAZZ

public static int GAME_RAZZ

Method Details

PotEquity

public static void PotEquity(int gameType,
                             int nsamples,
                             long[] pockets,
                             long board,
                             long dead,
                             double[] ev)
Compute all-in pot equity of each player's hand, either by complete enumeration of outcomes or by monte carlo sampling.
Parameters:
gameType - specifies game (Enumerate.GAME_HOLDEM, etc)
nsamples - number of monte carlo samples; if 0, full enumeration
pockets - pockets[i] is bitmask of player i's cards
board - board is bitmask of board cards
dead - dead is bitmask of dead cards
ev - output: ev[i] is pot equity of player i

PotEquity

public static void PotEquity(int gameType,
                             int nsamples,
                             long[] pockets,
                             long board,
                             long dead,
                             double[] ev,
                             int[][][] orderKeys,
                             int[][] orderVals)
Compute all-in pot equity of each player's hand, either by complete enumeration of outcomes or by monte carlo sampling.
Parameters:
gameType - specifies game (Enumerate.GAME_HOLDEM, etc)
nsamples - number of monte carlo samples; if 0, full enumeration
pockets - pockets[i] is bitmask of player i's cards
board - board is bitmask of board cards
dead - dead is bitmask of dead cards
ev - output: ev[i] is pot equity of player i
orderKeys - output: orderKeys[0][j] corresponds to a particular relative ordering of the players' hands at showdown, such that orderKeys[0][j][k] is the relative rank of player k's hand, where rank=0 means best, rank=nplayers-1 means worst, and rank=nplayers indicates a non-qualifying hand. For high-low games, orderKeys[0][j][k+nplayers] gives corresponding information for the low hand. Before calling the method, allocate orderKeys as a new int[1][][].
orderVals - output: orderVals[0][j] the number of outcomes corresponding to the relative rank ordering in orderKeys[0][j]. Before calling the method, allocate orderVals as a new int[1][].

main

public static void main(String[] args)
A simple test of Enumerate methods. Compare to "pokenum -h ks kh ad td 9c 8c -- kd jd th / As 2h". and "pokenum -O -h ks kh ad td 9c 8c -- kd jd th / As 2h".

PokerSource Home Page - Learn how you can contribute!