From fdc8024a61b21314fb1ca1ab6d8adf45c9c7b063 Mon Sep 17 00:00:00 2001 From: salmonik Date: Mon, 24 Aug 2026 18:30:25 +0200 Subject: Balance slots payouts: EV=0.972 (2.8% house edge). Three-of-a-kind: 2-28x, two-of-a-kind: 1-3x. --- src/bin/server/games/slots.rs | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) (limited to 'src/bin/server/games/slots.rs') 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 { let symbols = vec!['C', 'L', 'O', 'G', 'D', 'S']; let mut payouts = HashMap::new(); - payouts.insert("CCC".to_string(), 5); - payouts.insert("LLL".to_string(), 10); - payouts.insert("OOO".to_string(), 15); - payouts.insert("GGG".to_string(), 20); - payouts.insert("DDD".to_string(), 50); - payouts.insert("SSS".to_string(), 100); - - payouts.insert("CC".to_string(), 2); - payouts.insert("LL".to_string(), 3); - payouts.insert("OO".to_string(), 4); - payouts.insert("GG".to_string(), 5); - payouts.insert("DD".to_string(), 10); - payouts.insert("SS".to_string(), 20); + // Balanced payouts: EV = 210/216 ≈ 0.972 (2.8% house edge) + payouts.insert("CCC".to_string(), 2); + payouts.insert("LLL".to_string(), 3); + payouts.insert("OOO".to_string(), 5); + payouts.insert("GGG".to_string(), 8); + payouts.insert("DDD".to_string(), 14); + payouts.insert("SSS".to_string(), 28); + + payouts.insert("CC".to_string(), 1); + payouts.insert("LL".to_string(), 1); + payouts.insert("OO".to_string(), 1); + payouts.insert("GG".to_string(), 2); + payouts.insert("DD".to_string(), 2); + payouts.insert("SS".to_string(), 3); Self { symbols, payouts } } -- cgit v1.2.3