Warning: Don't believe this analysis. The results from actual gambling don't seem to match up (the player loses over time). I don't know why.
The strategy game Port Royale has a gambling game you can play in the inns. I wondered what the odds are, so I wrote a little program to calculate them.
Except for a bug in the game, the game is weighed in the house's favor, as the player can expect to win 0.91 GC for every 1 GC wagered. But there's a bug that puts the odds squarely in the player's favor. More on the bug below.
The game rules are: You make your bet, then roll 5 dice. If you did not make a winning roll, you may choose to double your bet. In any case, you must now pick any, all or none of the dice to keep and roll the rest. The house then pays.
The winning rolls are:
| Five of a kind | 3 |
| Four of a kind | 2 |
| Three of a kind | 1 |
| Straight (the game calls this a "flush") | 2 |
| Full house | 2 |
| Initial Hand | What to keep | Double? |
|---|---|---|
| One pair | Keep the pair and roll 3 | Yes |
| Two Pair | Keep the two pair and roll 1 | No |
| Inside Straight with pair | Keep the pair and roll 3 | No |
| Inside Straight with no pair | Roll all five | No |
| Outside Straight | Keep outside straight and roll 1 | No |
| Three of a kind | Keep the 3 of a kind and roll 2 | n/a |
| Full House | Keep everything and roll 0 | n/a |
| Straight (aka "flush") | Keep everything and roll 0 | n/a |
| Four of a kind | Keep the four of a kind and roll 1 | n/a |
| Five of a kind | Keep everything and roll 0 | n/a |
There's a bug in the game, at least with version 1,4,0,3. When you double and win, the computer pays you without first subtracting your extra bet. The payout on a doubled bet that you win is, in effect *3 rather than *2. That bug changes everything! The player can now expect to receive 1.36 GC for every 1 GC wagered.
| Initial Hand | What to keep | Double? |
|---|---|---|
| One pair | Keep the pair and roll 3 | Yes |
| Two Pair | Keep the two pair and roll 1 | Yes |
| Inside Straight with pair | Keep the pair and roll 3 | Yes |
| Inside Straight with no pair | Roll 1 | No |
| Outside Straight | Keep outside straight and roll 1 | Yes |
| Three of a kind | Keep the 3 of a kind and roll 2 | n/a |
| Full House | Keep everything and roll 0 | n/a |
| Straight (aka "flush") | Keep everything and roll 0 | n/a |
| Four of a kind | Keep the four of a kind and roll 1 | n/a |
| Five of a kind | Keep everything and roll 0 | n/a |
The program that calculated all this is portroyalegambling.rb.
one pair: probability = 0.24691
After rolling 3:
DOUBLED
PROBABILITY WIN PAYOFF PAYOFF
0.194444444 0 0.0000 -0.1944 one pair
0.277777778 0 0.0000 -0.2778 two pair
0.004629630 3 0.0139 0.0417 five of a kind
0.092592593 2 0.1852 0.5556 full house
0.083333333 0 0.0000 -0.0833 inside straight (with pair)
0.069444444 2 0.1389 0.4167 four of a kind
0.277777778 1 0.2778 0.8333 three of a kind
1.000000000 0 0.6157 1.2917 TOTALS
Player should double
Payoff = 0.3189300412 (0.2469135802 * 1.291666667)
two pair: probability = 0.23148
After rolling 1:
DOUBLED
PROBABILITY WIN PAYOFF PAYOFF
0.666666667 0 0.0000 -0.6667 two pair
0.333333333 2 0.6667 2.0000 full house
1.000000000 0 0.6667 1.3333 TOTALS
Player should double
Payoff = 0.3086419753 (0.2314814815 * 1.333333333)
inside straight (with pair): probability = 0.18519
After rolling 3:
DOUBLED
PROBABILITY WIN PAYOFF PAYOFF
0.194444444 0 0.0000 -0.1944 one pair
0.277777778 0 0.0000 -0.2778 two pair
0.004629630 3 0.0139 0.0417 five of a kind
0.092592593 2 0.1852 0.5556 full house
0.083333333 0 0.0000 -0.0833 inside straight (with pair)
0.069444444 2 0.1389 0.4167 four of a kind
0.277777778 1 0.2778 0.8333 three of a kind
1.000000000 0 0.6157 1.2917 TOTALS
Player should double
Payoff = 0.2391975309 (0.1851851852 * 1.291666667)
three of a kind: probability = 0.15432
After rolling 2:
DOUBLED
PROBABILITY WIN PAYOFF PAYOFF
0.027777778 3 0.0833 0.0000 five of a kind
0.138888889 2 0.2778 0.0000 full house
0.277777778 2 0.5556 0.0000 four of a kind
0.555555556 1 0.5556 0.0000 three of a kind
1.000000000 0 1.4722 0.0000 TOTALS
Player can't double
Payoff = 0.2271947874 (0.1543209877 * 1.472222222)
inside straight (no pair): probability = 0.06173
After rolling 1:
DOUBLED
PROBABILITY WIN PAYOFF PAYOFF
0.166666667 0 0.0000 -0.1667 inside straight (no pair)
0.166666667 2 0.3333 1.0000 straight
0.666666667 0 0.0000 -0.6667 inside straight (with pair)
1.000000000 0 0.3333 0.1667 TOTALS
Player should not double
Payoff = 0.02057613169 (0.06172839506 * 0.3333333333)
full house: probability = 0.03858
After rolling 0:
DOUBLED
PROBABILITY WIN PAYOFF PAYOFF
1.000000000 2 2.0000 0.0000 full house
1.000000000 0 2.0000 0.0000 TOTALS
Player can't double
Payoff = 0.07716049383 (0.03858024691 * 2.0)
straight: probability = 0.03086
After rolling 0:
DOUBLED
PROBABILITY WIN PAYOFF PAYOFF
1.000000000 2 2.0000 0.0000 straight
1.000000000 0 2.0000 0.0000 TOTALS
Player can't double
Payoff = 0.06172839506 (0.03086419753 * 2.0)
outside straight: probability = 0.03086
After rolling 1:
DOUBLED
PROBABILITY WIN PAYOFF PAYOFF
0.333333333 2 0.6667 2.0000 straight
0.666666667 0 0.0000 -0.6667 outside straight
1.000000000 0 0.6667 1.3333 TOTALS
Player should double
Payoff = 0.04115226337 (0.03086419753 * 1.333333333)
four of a kind: probability = 0.01929
After rolling 0:
DOUBLED
PROBABILITY WIN PAYOFF PAYOFF
1.000000000 3 3.0000 0.0000 five of a kind
1.000000000 0 3.0000 0.0000 TOTALS
Player can't double
Payoff = 0.05787037037 (0.01929012346 * 3.0)
five of a kind: probability = 0.00077
After rolling 0:
DOUBLED
PROBABILITY WIN PAYOFF PAYOFF
1.000000000 3 3.0000 0.0000 five of a kind
1.000000000 0 3.0000 0.0000 TOTALS
Player can't double
Payoff = 0.002314814815 (0.0007716049383 * 3.0)
Total Payoff = 1.354766804