Open Side Menu Go to the Top
Register
Betsoft Poker3 Heads Up Betsoft Poker3 Heads Up

08-13-2018 , 07:01 PM
Has anyone played this game?

For those who haven't played, it is a game of poker played heads up against the computer. The structure is as follows:

Each player antes 1 unit
Pre-flop, player may bet 1 unit or fold, computer may call one unit or fold
Flop, player may bet 1 unit or fold, computer may call one unit or fold
Turn, player may bet 2 units or fold, computer may call 2 units or fold
River, player may bet 2 units or fold, computer may call 2 units or fold

There is no rake, but the computer has position every hand. There is no raising or checking.

What is the edge of the computer for the Nash Equilibrium? What is the equilibrium player strategy?

Being OOP every hand seems like a huge disadvantage, but the computer definitely doesn't play optimally. I saw it call a busted 7-high flush draw on the river, for example. For the short time I've played it. It fold sometimes pre-flop/flop, but never turn/river. What would be the GTO strategy against a player who can not fold turn/river?

Edit: Apparently it does fold river occasionally. I'm feeling in the dark about it's strategy, though. If it's calling with 7-high busted draws what is it folding???

Edit2: Additionally, it vpipped 83o, but has a non-zero folding frequency pre-flop. I'm not sure what's going on here.

Last edited by browni3141; 08-13-2018 at 07:17 PM.
Betsoft Poker3 Heads Up Quote
08-14-2018 , 02:05 AM
I checked out the free version. I bet pre and c-bet flop 8 times and it folded every flop, then it calls me down with A9o and no pair or draw.

Anyway, I do not believe that this can be beaten, and the house will always win. It would not need a sophisticated AI, either. Just a scaled down lookup table.

I do not recommend anyone play this for money, but fooling around for free only.

There is no requirement for the free version to display the same skill as the real money version.

Oh, what is the edge? My guess would be around 8 units per 100 hands.

If this is really interesting, then we can derive some betting frequencies and descretize to holdem hand ranges....
Betsoft Poker3 Heads Up Quote
08-14-2018 , 06:58 PM
I am attempting a frequency analysis playing real money hands. I played the guy in the pink shirt (in case they are different player profiles) for 320 real money hands at $.20 per unit, winning 100 units. These were the results:

Total Hands: 320
Villain pre-flop call frequency:92.1% of 241
Villain flop call frequency:66.1% of 218
Villain turn call frequency:86% of 107
Villain river call frequency:98.7% of 78

I am not sure how to do a theoretical analysis. I am very curious what the NE is for this game. Is it something that can be accomplished in Pio-solver with node-locking? I don't have the software yet, unfortunately.
Betsoft Poker3 Heads Up Quote
08-14-2018 , 07:37 PM
All right! Sounds interesting. Hopefully someone else who uses a solver can give that a shot. For me, this is a poker model called ‘La Relance’. The only variation here is that there are three rounds of betting, and the board changes. However, the main point is that you are oop and checking is not allowed (you either fold or bet). For a single river round, this is fully solved. For only on a flop this is also fully solved.

This stuff takes a while, so I am not saying it is easy, just that it is possible.
Betsoft Poker3 Heads Up Quote
08-20-2018 , 09:32 AM
Lets start with the river. If the bot calls perfectly, what will be the range of hands that call on the river. Solve for the frequency, and start with the nuts and work down into range to find the theoretical cutoff combo that accounts for that frequency.
Betsoft Poker3 Heads Up Quote
01-18-2021 , 06:03 PM
This game is gone now that flash is dead. Site's started removing it even a bit before that. I recorded about 40,000 hands and analyzed frequencies on various board textures and showdowns in order to model the computer's strategy and solve the game by computer to derive a counterstrategy. Using the strategy I devised I was able to win several thousand dollars over 100k-ish hands. Unfortunately I didn't have a significant amount of money to devote to this, or I think I could have won much more.

I strongly believe that this was a +EV game. The 40k recorded sample showed a statistically significant result (about 4 standard deviations above the expected performance of a breakeven win-rate), and I continued to win after that. In the end I estimate that the win-rate was around .05 antes per hand.

It was pretty cool and shocking to find a player advantage game online. Also very disappointed that I feel I wasn't able to put my best effort forth into crushing it before it was taken offline. I suppose it's possible I was part of the reason they took it down, as my account got restricted on one site I was playing on, but I think it's more likely that they were just phasing out flash games.
Betsoft Poker3 Heads Up Quote
01-18-2021 , 10:24 PM
Interesting. I remember you mentioning that you had found an advantage casino game a while back.

How did you go about solving it, and what strategy did you come up with? Did you have any trouble withdrawing after your account was restricted?
Betsoft Poker3 Heads Up Quote
01-19-2021 , 04:46 AM
Quote:
Originally Posted by tombos21
Interesting. I remember you mentioning that you had found an advantage casino game a while back.

How did you go about solving it, and what strategy did you come up with? Did you have any trouble withdrawing after your account was restricted?
This is gonna be long. I don't know how to answer the questions you asked succinctly. Poor TLDR at the bottom and I labeled sections.

They just took away all bonus offers and stopped giving me VIP points or whatever which can be redeemed for cash/free spins. I was allowed to withdraw still, and I think I could still deposit if I wanted to.

I am going off of memory and not looking at the code since it's on my dead laptop (I could get it though if/when I want to), so I may make a mistake or leave something important out. I tested everything fairly rigorously though so I don't believe I made any major mistakes in the actual algorithm.

------Solving the game-------

To solve the game, I enumerate the full game tree. At each Hero decision node, I choose the higher of 0 and the EV of calling (yet to be calculated). At each Villain decision node. I apply a function to villain's range which removes the hands I believe villain folds at that node. I am keeping track of villain's full range as an array of 1326 bits, each of which represents one of the combos. Then I calculate continue/fold frequency by the ratio of the set bits before and after villain's strategy for that node is applied to get the EV when villain fold's, and calculate the EV when villain calls, which is the average of the EV of each node after the next card(s) are dealt. At showdown I calculate the equity of hero's hand vs. villain's range to get the EV at that leaf node, and backpropagate the EV through the tree to get all optimal hero actions and the EV of each action.

To improve speed I stored the results of each node in a hashtable, using a hash function which generates the same key for nodes which are strategically equivalent. Testing the hashtable was as simple as making sure the EV was the same with and without it.

At showdown I calculated the range of hands hero chops with and the range of hands hero wins against and store each in another hashtable, ignoring flushes to save space and to get more hashtable hits. When a range is extracted from the hashtable, I determine whether the board has a 3, 4 or 5 flush and set/unset the appropriate bits in the chop/win ranges based on the suit. I forget exactly how I handled what happens when hero can beat some/all flushes, but I remember straight flushes being slightly annoying to handle. Since suits were ignored I also have to mask out combos which have a dead card. The resulting ranges are used as a bitmask with villain's range to determine the final range we need to calculate hero's equity against.

The eval function generated a value which was distinct for each five card hand in a way that the values could be ordered by strength. This way I don't have to compare each hand individually, I just have to find hands with a value higher than hero's 114858858929387 or whatever.

------Villain's strategy-------

The AI's strategy was not very complicated, but I did have trouble figuring out exactly how it handled some classes of hands, and I still don't know. Preflop it called about top 90% of hands. I figured out the exact range but don't recall of the top of my head. The only consideration it made to board texture was whether the flop was paired/trips, monotone or neither.

On unpaired flops it would call made hands K8 high or better, all the way to showdown no matter what. Flush draws would call all the way down no matter what (even if they miss and are 5-high at the river, lol). Gutters would fold turn if they miss, and OESDs would mostly call down, but the showdown frequency of missed OESDs was low by a statistically significant amount, so I think they folded river sometimes, but I can't figure out the conditions.

The only difference with monotone flops was that missed flush draws would fold the river, unless they were K8 high or better of course. This made it possible to make river bluffs in some circumstances.

On paired flops the AI would call down more hands, I assume to account for the fact that it's harder to make a pair. It calls down JT high or better now. JT and Q-high were underrepresented at showdown by a statistically significant amount, so they must have sometimes been folded but I can't figure out under what conditions.

There were a few outliers that I couldn't figure out. Backdoor straight draws seemed to call flop at some frequency and call down if they improved, but they were underrepresented in a way that they would have had to fold flop most of the time as well as the turn when they miss. Sometimes it would call down something like 6-high with no backdoor, but that only happened a few times in 100k hands.

------Hero's strategy-------

Despite the fact that the AI had position, and there was no checking, which is a huuuuuge advantage, it played so badly Hero is able to get an edge. Hero's general strategy is to call 100% of hands preflop and on the flop, with some exceptions on connected and/or monotone boards where the AI meets MDF and hero has very low equity. Right away we get a lot of EV out of the AI significantly overfolding most flops. It normally calls A-high but doesn't call wider on A-high flops to compensate for fewer high card calls, making A-high flops way overfolded. There is a similar, smaller effect on K-high flops.

On the turn, hero is supposed to call down any pair to showdown, with some exceptions with bottom pair when an Ax comes out or on A/K-high flops. On turns which don't bring a 4-straight after connected flops, 100% of hands which had enough equity to call flop can call turn, accounting for the fact that the AI folds a lot of missed gutters. On paired boards Hero calls down A-high or better, and some K-high with a good enough kicker. Of course you have to fold more on A/K/Q high paired boards because villain's range has fewer naked high-cards and is stronger. On unpaired boards Hero sometimes calls A-high and gutters depending on how many missed gutters the opponent has and how much equity hero has vs. the continuing range. Gutters like 43 on KQ76 are trivial folds for example, but something like AK has enough showdown value and fold equity, and T9 easily has enough equity from it's overcards+gutter+villain folds to call on 7622. 2-card flush draws are always called, even on trips boards, and 2-card OESDs are called with extremely rare exceptions where you have minimal fold equity and no other hand equity or dirty outs, like 54 on A976 where we have to fold even when we river a pair.

There were some spots which were unintuitive for me. Hero is supposed to call with hands as weak as middle pair on 4-flush turns, for example, despite the fact that villain never folds any flush draw on the flop. He just has a lot of A/K-high/PPs, bottom pair and worse middle pairs in his range.

This doesn't even describe the full strategy because there are a lot of exceptions and edge cases for Hero.

TLDR: Solve by doing a big EV calculation on the game tree. Strategy is to call a lot pre+flop, decide whether you want to commit on turn and call down. Chase good draws.
Betsoft Poker3 Heads Up Quote
01-19-2021 , 11:38 PM
That sounds appealing. I will try this game!
Betsoft Poker3 Heads Up Quote
01-20-2021 , 05:14 AM
Sounds like you ended up writing your own solver for this game. Right on.

What was the structure of the game, exactly? The original post makes it sound like hero OOP has to bet or fold, and the computer IP can only call or fold. But then you mention hero should be calling a lot in certain places?

I wonder if you could nodelock a regular solver to try and beat this game. The bot must have been pretty bad for you to have an edge haha
Betsoft Poker3 Heads Up Quote
01-20-2021 , 08:40 AM
Quote:
Originally Posted by Casinomentor
That sounds appealing. I will try this game!
Unfortunately I don't know of anywhere it can be played anymore, not even for play money.

Quote:
Originally Posted by tombos21
Sounds like you ended up writing your own solver for this game. Right on.

What was the structure of the game, exactly? The original post makes it sound like hero OOP has to bet or fold, and the computer IP can only call or fold. But then you mention hero should be calling a lot in certain places?

I wonder if you could nodelock a regular solver to try and beat this game. The bot must have been pretty bad for you to have an edge haha
I don't know if I would call it a solver. It doesn't do what equilibrium solvers do. It's basically a one player game because the computer's strategy is fixed, so more like blackjack rather than a 2+ player game like poker or chess. I've written algorithms for two player games before also, which was more difficult.

It's literally just a giant EV calculation, taking the weighted average of all outcomes in the game tree, except you have to optimize one side's call/fold decisions.

You only have two options at any point. You can put money in the pot and continue or you can fold. I used bet/call interchangeably because there's really no difference in this game. To start a hand both players pay an ante. It's 1 ante to call preflop, one to call on the flop, two to call on the turn and another two to call on the river. The computer is always IP and has the same two options. The player edge comes from the AI overfolding flop and overcalling turn+river. MDF on the flop is 80% and IIRC it folds like 67% on average. Once it calls flop it almost always calls down so it ends up way overcalling and you can get good showdown winnings. Most of the OOP's losses are from overfolding turn, but it's correct since IP's range is strong from overfolding flop.
Betsoft Poker3 Heads Up Quote

      
m