diff options
| author | salmonik <salmonik@tuta.io> | 2026-08-24 18:30:25 +0200 |
|---|---|---|
| committer | salmonik <salmonik@tuta.io> | 2026-08-24 18:30:25 +0200 |
| commit | fdc8024a61b21314fb1ca1ab6d8adf45c9c7b063 (patch) | |
| tree | 83039ea7d216234360b8f9953c4dbbc0beafb705 /src/bin/server/games | |
| parent | Client: read PLAY_START response before animating; show error immediately on ... (diff) | |
| download | zagan-bet-fdc8024a61b21314fb1ca1ab6d8adf45c9c7b063.tar.gz zagan-bet-fdc8024a61b21314fb1ca1ab6d8adf45c9c7b063.zip | |
Balance slots payouts: EV=0.972 (2.8% house edge). Three-of-a-kind: 2-28x, two-of-a-kind: 1-3x.
Diffstat (limited to '')
| -rw-r--r-- | src/bin/server/games/slots.rs | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/src/bin/server/games/slots.rs b/src/bin/server/games/slots.rs index 3d285ef..04ac175 100644 --- a/src/bin/server/games/slots.rs +++ b/src/bin/server/games/slots.rs | |||
| @@ -12,19 +12,20 @@ impl SlotsGame { | |||
| 12 | let symbols = vec!['C', 'L', 'O', 'G', 'D', 'S']; | 12 | let symbols = vec!['C', 'L', 'O', 'G', 'D', 'S']; |
| 13 | let mut payouts = HashMap::new(); | 13 | let mut payouts = HashMap::new(); |
| 14 | 14 | ||
| 15 | payouts.insert("CCC".to_string(), 5); | 15 | // Balanced payouts: EV = 210/216 ≈ 0.972 (2.8% house edge) |
| 16 | payouts.insert("LLL".to_string(), 10); | 16 | payouts.insert("CCC".to_string(), 2); |
| 17 | payouts.insert("OOO".to_string(), 15); | 17 | payouts.insert("LLL".to_string(), 3); |
| 18 | payouts.insert("GGG".to_string(), 20); | 18 | payouts.insert("OOO".to_string(), 5); |
| 19 | payouts.insert("DDD".to_string(), 50); | 19 | payouts.insert("GGG".to_string(), 8); |
| 20 | payouts.insert("SSS".to_string(), 100); | 20 | payouts.insert("DDD".to_string(), 14); |
| 21 | 21 | payouts.insert("SSS".to_string(), 28); | |
| 22 | payouts.insert("CC".to_string(), 2); | 22 | |
| 23 | payouts.insert("LL".to_string(), 3); | 23 | payouts.insert("CC".to_string(), 1); |
| 24 | payouts.insert("OO".to_string(), 4); | 24 | payouts.insert("LL".to_string(), 1); |
| 25 | payouts.insert("GG".to_string(), 5); | 25 | payouts.insert("OO".to_string(), 1); |
| 26 | payouts.insert("DD".to_string(), 10); | 26 | payouts.insert("GG".to_string(), 2); |
| 27 | payouts.insert("SS".to_string(), 20); | 27 | payouts.insert("DD".to_string(), 2); |
| 28 | payouts.insert("SS".to_string(), 3); | ||
| 28 | 29 | ||
| 29 | Self { symbols, payouts } | 30 | Self { symbols, payouts } |
| 30 | } | 31 | } |
