# How to calculate SNG push/fold range using JAVA/C++?

Is there an open source code somewhere? Any good source to learn the math of push/fold strategy in SNG so I can code it myself?

• Don't you dare do it! Commented Oct 28, 2019 at 9:39

There used to be charts available if you didnt mind doing the data entry, but since it got shut down in the US, they dissappeared and only proprietary ICM + PB calculators were left.

Also, PokerStars had banned PB tools during play so that might also explain why they're not available anymore.

Edit to add: I'm sorry that I may not have been clear in my original reply.

To create a push/fold calculator, regardless of the language, you need to create 3-5 calling ranges that are optimized for different calling/isolating scenarios. Then you need to run 169 hand vs range calculations using an equity calculator such as Poker Stove for each of your calling ranges and save those all results which is very labor intensive.

Why these need to be run ahead of time is because hand vs range equities can only be solved using Monty-carlo or complete simulations just as Poker Stove does it. Running so many simulation passes every time is too slow and impractical and using a DB lookup instead is much more efficient.

I was therefore referring to push-bot charts that had already done those calculations for you and you could input the results into some kind of DB saving you quite a bit of work.

To program the rest of the problem you need to look at it like an EV calculation, i.e.
Odds of no call * blinds+antes Plus Odds of a call * pot * hand equity (From DB)

Calculating for a second or third caller is probably insignificant in most situations.

However, this can only provide a CEV calculation.

To get a \$EV calculation for a sit-n-go there is also an ICM calculation which is a different problem and only practical for sit-n-goes.

To calculate the whole thing, you need some input, that is:

• your hole cards
• player stacks

After this, you perform a lengthy procedure that is called ICM. This will transform your stacks into real money. Then based on real money won/lost on the action of push/fold, you select the one that increases your real money.

As you see, it's hard and the answer would be really lengthy to put up on poker stackexchange (i did that in the past, so i know). It can take a lot of time. There are many resources on Internet on ICM calculation but i really recommend reading Phil Shaw's book to get a solid grasp of this first. And this is only for calling a push.

For pushing yourself, you additionally need the calling range of your remaining opponents and the calculation is dragging even more. Good luck.