summaryrefslogtreecommitdiffstats
path: root/src/bin/server
diff options
context:
space:
mode:
authorsalmonik <salmonik@tuta.io>2026-08-24 18:30:25 +0200
committersalmonik <salmonik@tuta.io>2026-08-24 18:30:25 +0200
commitfdc8024a61b21314fb1ca1ab6d8adf45c9c7b063 (patch)
tree83039ea7d216234360b8f9953c4dbbc0beafb705 /src/bin/server
parentClient: read PLAY_START response before animating; show error immediately on ... (diff)
downloadzagan-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.rs27
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 }