Jump to content

» «

Video Poker

2 replies to this topic
  • viktprog

    Player Hater

  • Members
  • Joined: 06 May 2017
  • None


Posted 06 May 2017 - 06:37 PM Edited by viktprog, 06 May 2017 - 06:45 PM.

Inspired by Josh's True 100%+ series I decided to look up what is the real probability to get royal flush in poker machine. But as I am no math person, I wrote a simple C++ program that plays this mode a lot of times and gathers statistic probability based on the results. Source code and 64-bit exe can be found here: http://rgho.st/7rJnXnSpw.

Example output:


Number of simulations: ~1e+07

Number of threads: 4
Seed: 2256776011
Got royal flush: ~374 times
Result: ~374/1e+07 = 0.00374%
It means if your playout time is 20 sec in average, then
you will get a royal flush in 148 hrs 32 min 39 sec.
If you got it earlier consider yourself as a lucky one,
if later then you are unlucky.
Good luck!

I am interested in getting as many statistics as possible, so I would appreciate if anyone could run this program with big simulation amounts and post the results here.


Run the program from command line with parameters:

number_of_simulations [number_of_threads] [seed]


Edit. Fixed time output. Added how-to-run info

  • Pyrrhic likes this

  • Craig

    Biographer Seahorse

  • Moderator
  • Joined: 14 Sep 2007
  • None
  • Best Writer 2011
    Time Traveller Of The Year 1984


Posted 07 May 2017 - 01:16 AM

Interesting. I did wonder if the poker game is programmed to be truly random or if there is some bias at play. As unlikely as a royal flush is I find the probability quite low for this example. I'm not doubting you or the data, I'm just curious if there's a pattern the game follows when it comes to video poker, or any of the casino games for that matter.

  • viktprog

    Player Hater

  • Members
  • Joined: 06 May 2017
  • None


Posted 07 May 2017 - 01:05 PM

I actually did look into script some time ago and it seems it is doing things the same way I do. The game has two opcodes that deal with the cards: 059D shuffles decks, 059E gets one card from the top. I didn't check how the engine does the shuffling though, but if it does it the same way as in Vice City, then it does not cheat.

My program does not run the script from the game, it shows the real values if a player would follow my strategy and casino would play fairly (unless there are mistakes in my code). So the probability is in fact that low.

The intended strategy is: 1) hold cards that can win (10 and better) and of a suit that has the best chance of winning; 2) if two suits are equal in chances, then we only pick cards of a suit that is faster to get (e.g. if we have one winning card at position 1 and one winning card of different suit at position 3, then we choose the first one as we don't need to move the cursor). This strategy seems to have x20 better chance of winning then just getting a new hand every time.

1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users