fix last round of knock-out whist
authorGeoffrey Allott <geoffrey@allott.email>
Tue, 16 Mar 2021 20:25:27 +0000 (20:25 +0000)
committerGeoffrey Allott <geoffrey@allott.email>
Tue, 16 Mar 2021 20:25:27 +0000 (20:25 +0000)
src/game/whist.rs

index a383953931f9eeff2a47d95f2f8205a228fed66e..86c7032306f8b6bfca1ef7c77774ec9aa33063ab 100644 (file)
@@ -99,6 +99,10 @@ impl KnockOutWhist {
     fn cards_by_player(&self) -> impl Iterator<Item = (Username, Card)> + '_ {
         self.hands.iter().map(|(username, hand)| hand.iter().map(move |card| (*username, *card))).flatten()
     }
+
+    fn all_hands_dealt(&self) -> bool {
+        self.hands.values().all(|hand| hand.len() == self.cards_to_deal as usize) && self.seats.players_len() == self.hands.len()
+    }
 }
 
 impl Game for KnockOutWhist {
@@ -185,7 +189,7 @@ impl Game for KnockOutWhist {
             (State::Dealing, Action::ReceiveCard { card: Some(card) }) => {
                 self.deck.remove(&card);
                 self.hands.entry(username).or_default().insert(card);
-                if self.hands.values().all(|hand| hand.len() == self.cards_to_deal as usize) {
+                if self.all_hands_dealt() {
                     self.receiver = None;
                 } else {
                     self.receiver = self.receiver.and_then(|player| self.seats.player_after(player));
@@ -568,4 +572,194 @@ mod tests {
 
         test_game(actions, settings, seed);
     }
+
+    #[test]
+    fn both_players_get_dealt_cards_in_last_round() {
+        let actions = r#"[
+            {"timestamp":1615925105601,"username":"kat","action":{"action":"Join","seat":0,"chips":0}},
+            {"timestamp":1615925110622,"username":"geoff","action":{"action":"Join","seat":1,"chips":0}},
+            {"timestamp":1615925110625,"username":"geoff","action":{"action":"NextToDeal"}},
+            {"timestamp":1615925110627,"username":"kat","action":{"action":"ReceiveCard","card":{"rank":"Three","suit":"Spades"}}},
+            {"timestamp":1615925110629,"username":"geoff","action":{"action":"ReceiveCard","card":{"rank":"Five","suit":"Clubs"}}},
+            {"timestamp":1615925110631,"username":"kat","action":{"action":"ReceiveCard","card":{"rank":"Seven","suit":"Clubs"}}},
+            {"timestamp":1615925110633,"username":"geoff","action":{"action":"ReceiveCard","card":{"rank":"Jack","suit":"Diamonds"}}},
+            {"timestamp":1615925110635,"username":"kat","action":{"action":"ReceiveCard","card":{"rank":"Ace","suit":"Spades"}}},
+            {"timestamp":1615925110637,"username":"geoff","action":{"action":"ReceiveCard","card":{"rank":"Nine","suit":"Diamonds"}}},
+            {"timestamp":1615925110639,"username":"kat","action":{"action":"ReceiveCard","card":{"rank":"Two","suit":"Spades"}}},
+            {"timestamp":1615925110640,"username":"geoff","action":{"action":"ReceiveCard","card":{"rank":"Six","suit":"Clubs"}}},
+            {"timestamp":1615925110642,"username":"kat","action":{"action":"ReceiveCard","card":{"rank":"Two","suit":"Diamonds"}}},
+            {"timestamp":1615925110644,"username":"geoff","action":{"action":"ReceiveCard","card":{"rank":"Two","suit":"Clubs"}}},
+            {"timestamp":1615925110646,"username":"kat","action":{"action":"ReceiveCard","card":{"rank":"Queen","suit":"Hearts"}}},
+            {"timestamp":1615925110648,"username":"geoff","action":{"action":"ReceiveCard","card":{"rank":"Eight","suit":"Hearts"}}},
+            {"timestamp":1615925110650,"username":"kat","action":{"action":"ReceiveCard","card":{"rank":"Nine","suit":"Hearts"}}},
+            {"timestamp":1615925110652,"username":"geoff","action":{"action":"ReceiveCard","card":{"rank":"Ten","suit":"Spades"}}},
+            {"timestamp":1615925110653,"username":"geoff","action":{"action":"CommunityCard","card":{"rank":"Jack","suit":"Hearts"}}},
+            {"timestamp":1615925110655,"username":"geoff","action":{"action":"EndDeal"}},
+            {"timestamp":1615925129308,"username":"kat","action":{"action":"PlayCard","card":{"rank":"Ace","suit":"Spades"}}},
+            {"timestamp":1615925132220,"username":"geoff","action":{"action":"PlayCard","card":{"rank":"Ten","suit":"Spades"}}},
+            {"timestamp":1615925132223,"username":"kat","action":{"action":"WinTrick"}},
+            {"timestamp":1615925139061,"username":"kat","action":{"action":"PlayCard","card":{"rank":"Queen","suit":"Hearts"}}},
+            {"timestamp":1615925140230,"username":"geoff","action":{"action":"PlayCard","card":{"rank":"Eight","suit":"Hearts"}}},
+            {"timestamp":1615925140233,"username":"kat","action":{"action":"WinTrick"}},
+            {"timestamp":1615925144240,"username":"kat","action":{"action":"PlayCard","card":{"rank":"Nine","suit":"Hearts"}}},
+            {"timestamp":1615925145800,"username":"geoff","action":{"action":"PlayCard","card":{"rank":"Two","suit":"Clubs"}}},
+            {"timestamp":1615925145803,"username":"kat","action":{"action":"WinTrick"}},
+            {"timestamp":1615925147230,"username":"kat","action":{"action":"PlayCard","card":{"rank":"Seven","suit":"Clubs"}}},
+            {"timestamp":1615925148866,"username":"geoff","action":{"action":"PlayCard","card":{"rank":"Five","suit":"Clubs"}}},
+            {"timestamp":1615925148868,"username":"kat","action":{"action":"WinTrick"}},
+            {"timestamp":1615925150792,"username":"kat","action":{"action":"PlayCard","card":{"rank":"Three","suit":"Spades"}}},
+            {"timestamp":1615925152406,"username":"geoff","action":{"action":"PlayCard","card":{"rank":"Nine","suit":"Diamonds"}}},
+            {"timestamp":1615925152409,"username":"kat","action":{"action":"WinTrick"}},
+            {"timestamp":1615925153695,"username":"kat","action":{"action":"PlayCard","card":{"rank":"Two","suit":"Spades"}}},
+            {"timestamp":1615925155260,"username":"geoff","action":{"action":"PlayCard","card":{"rank":"Six","suit":"Clubs"}}},
+            {"timestamp":1615925155263,"username":"kat","action":{"action":"WinTrick"}},
+            {"timestamp":1615925156221,"username":"kat","action":{"action":"PlayCard","card":{"rank":"Two","suit":"Diamonds"}}},
+            {"timestamp":1615925157007,"username":"geoff","action":{"action":"PlayCard","card":{"rank":"Jack","suit":"Diamonds"}}},
+            {"timestamp":1615925157010,"username":"geoff","action":{"action":"WinTrick"}},
+            {"timestamp":1615925157012,"username":"kat","action":{"action":"WinCall"}},
+            {"timestamp":1615925157013,"username":"kat","action":{"action":"NextToDeal"}},
+            {"timestamp":1615925157015,"username":"geoff","action":{"action":"ReceiveCard","card":{"rank":"Two","suit":"Diamonds"}}},
+            {"timestamp":1615925157017,"username":"kat","action":{"action":"ReceiveCard","card":{"rank":"Three","suit":"Clubs"}}},
+            {"timestamp":1615925157019,"username":"geoff","action":{"action":"ReceiveCard","card":{"rank":"Five","suit":"Spades"}}},
+            {"timestamp":1615925157022,"username":"kat","action":{"action":"ReceiveCard","card":{"rank":"Four","suit":"Diamonds"}}},
+            {"timestamp":1615925157024,"username":"geoff","action":{"action":"ReceiveCard","card":{"rank":"Queen","suit":"Diamonds"}}},
+            {"timestamp":1615925157026,"username":"kat","action":{"action":"ReceiveCard","card":{"rank":"Eight","suit":"Hearts"}}},
+            {"timestamp":1615925157027,"username":"geoff","action":{"action":"ReceiveCard","card":{"rank":"Ten","suit":"Spades"}}},
+            {"timestamp":1615925157030,"username":"kat","action":{"action":"ReceiveCard","card":{"rank":"Five","suit":"Hearts"}}},
+            {"timestamp":1615925157031,"username":"geoff","action":{"action":"ReceiveCard","card":{"rank":"Six","suit":"Diamonds"}}},
+            {"timestamp":1615925157034,"username":"kat","action":{"action":"ReceiveCard","card":{"rank":"King","suit":"Diamonds"}}},
+            {"timestamp":1615925157036,"username":"geoff","action":{"action":"ReceiveCard","card":{"rank":"Six","suit":"Spades"}}},
+            {"timestamp":1615925157038,"username":"kat","action":{"action":"ReceiveCard","card":{"rank":"Eight","suit":"Spades"}}},
+            {"timestamp":1615925157040,"username":"kat","action":{"action":"EndDeal"}},
+            {"timestamp":1615925173066,"username":"kat","action":{"action":"ChooseTrumps","suit":"Diamonds"}},
+            {"timestamp":1615925177864,"username":"geoff","action":{"action":"PlayCard","card":{"rank":"Ten","suit":"Spades"}}},
+            {"timestamp":1615925179503,"username":"kat","action":{"action":"PlayCard","card":{"rank":"Eight","suit":"Spades"}}},
+            {"timestamp":1615925179506,"username":"geoff","action":{"action":"WinTrick"}},
+            {"timestamp":1615925185729,"username":"geoff","action":{"action":"PlayCard","card":{"rank":"Six","suit":"Spades"}}},
+            {"timestamp":1615925187617,"username":"kat","action":{"action":"PlayCard","card":{"rank":"Four","suit":"Diamonds"}}},
+            {"timestamp":1615925187621,"username":"kat","action":{"action":"WinTrick"}},
+            {"timestamp":1615925188218,"username":"kat","action":{"action":"PlayCard","card":{"rank":"King","suit":"Diamonds"}}},
+            {"timestamp":1615925190134,"username":"geoff","action":{"action":"PlayCard","card":{"rank":"Two","suit":"Diamonds"}}},
+            {"timestamp":1615925190137,"username":"kat","action":{"action":"WinTrick"}},
+            {"timestamp":1615925192652,"username":"kat","action":{"action":"PlayCard","card":{"rank":"Eight","suit":"Hearts"}}},
+            {"timestamp":1615925194196,"username":"geoff","action":{"action":"PlayCard","card":{"rank":"Six","suit":"Diamonds"}}},
+            {"timestamp":1615925194198,"username":"geoff","action":{"action":"WinTrick"}},
+            {"timestamp":1615925194703,"username":"geoff","action":{"action":"PlayCard","card":{"rank":"Queen","suit":"Diamonds"}}},
+            {"timestamp":1615925196373,"username":"kat","action":{"action":"PlayCard","card":{"rank":"Three","suit":"Clubs"}}},
+            {"timestamp":1615925196375,"username":"geoff","action":{"action":"WinTrick"}},
+            {"timestamp":1615925197387,"username":"geoff","action":{"action":"PlayCard","card":{"rank":"Five","suit":"Spades"}}},
+            {"timestamp":1615925198533,"username":"kat","action":{"action":"PlayCard","card":{"rank":"Five","suit":"Hearts"}}},
+            {"timestamp":1615925198535,"username":"geoff","action":{"action":"WinTrick"}},
+            {"timestamp":1615925198536,"username":"geoff","action":{"action":"WinCall"}},
+            {"timestamp":1615925198538,"username":"geoff","action":{"action":"NextToDeal"}},
+            {"timestamp":1615925198539,"username":"kat","action":{"action":"ReceiveCard","card":{"rank":"Four","suit":"Clubs"}}},
+            {"timestamp":1615925198541,"username":"geoff","action":{"action":"ReceiveCard","card":{"rank":"King","suit":"Diamonds"}}},
+            {"timestamp":1615925198543,"username":"kat","action":{"action":"ReceiveCard","card":{"rank":"Queen","suit":"Spades"}}},
+            {"timestamp":1615925198545,"username":"geoff","action":{"action":"ReceiveCard","card":{"rank":"Jack","suit":"Clubs"}}},
+            {"timestamp":1615925198547,"username":"kat","action":{"action":"ReceiveCard","card":{"rank":"Queen","suit":"Clubs"}}},
+            {"timestamp":1615925198549,"username":"geoff","action":{"action":"ReceiveCard","card":{"rank":"Jack","suit":"Spades"}}},
+            {"timestamp":1615925198550,"username":"kat","action":{"action":"ReceiveCard","card":{"rank":"Eight","suit":"Hearts"}}},
+            {"timestamp":1615925198552,"username":"geoff","action":{"action":"ReceiveCard","card":{"rank":"Four","suit":"Diamonds"}}},
+            {"timestamp":1615925198554,"username":"kat","action":{"action":"ReceiveCard","card":{"rank":"Queen","suit":"Hearts"}}},
+            {"timestamp":1615925198556,"username":"geoff","action":{"action":"ReceiveCard","card":{"rank":"Queen","suit":"Diamonds"}}},
+            {"timestamp":1615925198557,"username":"geoff","action":{"action":"EndDeal"}},
+            {"timestamp":1615925204006,"username":"geoff","action":{"action":"ChooseTrumps","suit":"Diamonds"}},
+            {"timestamp":1615925206551,"username":"kat","action":{"action":"PlayCard","card":{"rank":"Queen","suit":"Spades"}}},
+            {"timestamp":1615925208687,"username":"geoff","action":{"action":"PlayCard","card":{"rank":"Jack","suit":"Spades"}}},
+            {"timestamp":1615925208690,"username":"kat","action":{"action":"WinTrick"}},
+            {"timestamp":1615925211265,"username":"kat","action":{"action":"PlayCard","card":{"rank":"Queen","suit":"Clubs"}}},
+            {"timestamp":1615925212326,"username":"geoff","action":{"action":"PlayCard","card":{"rank":"Jack","suit":"Clubs"}}},
+            {"timestamp":1615925212329,"username":"kat","action":{"action":"WinTrick"}},
+            {"timestamp":1615925213392,"username":"kat","action":{"action":"PlayCard","card":{"rank":"Queen","suit":"Hearts"}}},
+            {"timestamp":1615925214444,"username":"geoff","action":{"action":"PlayCard","card":{"rank":"Four","suit":"Diamonds"}}},
+            {"timestamp":1615925214447,"username":"geoff","action":{"action":"WinTrick"}},
+            {"timestamp":1615925215433,"username":"geoff","action":{"action":"PlayCard","card":{"rank":"Queen","suit":"Diamonds"}}},
+            {"timestamp":1615925216267,"username":"kat","action":{"action":"PlayCard","card":{"rank":"Four","suit":"Clubs"}}},
+            {"timestamp":1615925216269,"username":"geoff","action":{"action":"WinTrick"}},
+            {"timestamp":1615925217294,"username":"geoff","action":{"action":"PlayCard","card":{"rank":"King","suit":"Diamonds"}}},
+            {"timestamp":1615925218272,"username":"kat","action":{"action":"PlayCard","card":{"rank":"Eight","suit":"Hearts"}}},
+            {"timestamp":1615925218275,"username":"geoff","action":{"action":"WinTrick"}},
+            {"timestamp":1615925218276,"username":"geoff","action":{"action":"WinCall"}},
+            {"timestamp":1615925218278,"username":"kat","action":{"action":"NextToDeal"}},
+            {"timestamp":1615925218279,"username":"geoff","action":{"action":"ReceiveCard","card":{"rank":"Nine","suit":"Diamonds"}}},
+            {"timestamp":1615925218281,"username":"kat","action":{"action":"ReceiveCard","card":{"rank":"King","suit":"Hearts"}}},
+            {"timestamp":1615925218283,"username":"geoff","action":{"action":"ReceiveCard","card":{"rank":"Queen","suit":"Hearts"}}},
+            {"timestamp":1615925218284,"username":"kat","action":{"action":"ReceiveCard","card":{"rank":"Jack","suit":"Spades"}}},
+            {"timestamp":1615925218286,"username":"geoff","action":{"action":"ReceiveCard","card":{"rank":"Six","suit":"Spades"}}},
+            {"timestamp":1615925218287,"username":"kat","action":{"action":"ReceiveCard","card":{"rank":"Jack","suit":"Clubs"}}},
+            {"timestamp":1615925218288,"username":"geoff","action":{"action":"ReceiveCard","card":{"rank":"Eight","suit":"Diamonds"}}},
+            {"timestamp":1615925218290,"username":"kat","action":{"action":"ReceiveCard","card":{"rank":"Queen","suit":"Spades"}}},
+            {"timestamp":1615925218292,"username":"kat","action":{"action":"EndDeal"}},
+            {"timestamp":1615925222455,"username":"geoff","action":{"action":"ChooseTrumps","suit":"Diamonds"}},
+            {"timestamp":1615925226057,"username":"geoff","action":{"action":"PlayCard","card":{"rank":"Queen","suit":"Hearts"}}},
+            {"timestamp":1615925227339,"username":"kat","action":{"action":"PlayCard","card":{"rank":"King","suit":"Hearts"}}},
+            {"timestamp":1615925227342,"username":"kat","action":{"action":"WinTrick"}},
+            {"timestamp":1615925228276,"username":"kat","action":{"action":"PlayCard","card":{"rank":"Queen","suit":"Spades"}}},
+            {"timestamp":1615925229444,"username":"geoff","action":{"action":"PlayCard","card":{"rank":"Six","suit":"Spades"}}},
+            {"timestamp":1615925229447,"username":"kat","action":{"action":"WinTrick"}},
+            {"timestamp":1615925230355,"username":"kat","action":{"action":"PlayCard","card":{"rank":"Jack","suit":"Clubs"}}},
+            {"timestamp":1615925231155,"username":"geoff","action":{"action":"PlayCard","card":{"rank":"Eight","suit":"Diamonds"}}},
+            {"timestamp":1615925231158,"username":"geoff","action":{"action":"WinTrick"}},
+            {"timestamp":1615925234913,"username":"geoff","action":{"action":"PlayCard","card":{"rank":"Nine","suit":"Diamonds"}}},
+            {"timestamp":1615925235946,"username":"kat","action":{"action":"PlayCard","card":{"rank":"Jack","suit":"Spades"}}},
+            {"timestamp":1615925235949,"username":"geoff","action":{"action":"WinTrick"}},
+            {"timestamp":1615925235951,"username":"geoff","action":{"action":"RevealCard","card":{"rank":"Jack","suit":"Diamonds"}}},
+            {"timestamp":1615925235953,"username":"kat","action":{"action":"RevealCard","card":{"rank":"Six","suit":"Diamonds"}}},
+            {"timestamp":1615925235955,"username":"geoff","action":{"action":"WinCall"}},
+            {"timestamp":1615925235956,"username":"geoff","action":{"action":"NextToDeal"}},
+            {"timestamp":1615925235958,"username":"kat","action":{"action":"ReceiveCard","card":{"rank":"Jack","suit":"Diamonds"}}},
+            {"timestamp":1615925235960,"username":"geoff","action":{"action":"ReceiveCard","card":{"rank":"Seven","suit":"Hearts"}}},
+            {"timestamp":1615925235962,"username":"kat","action":{"action":"ReceiveCard","card":{"rank":"Ten","suit":"Spades"}}},
+            {"timestamp":1615925235963,"username":"geoff","action":{"action":"ReceiveCard","card":{"rank":"Eight","suit":"Diamonds"}}},
+            {"timestamp":1615925235965,"username":"kat","action":{"action":"ReceiveCard","card":{"rank":"King","suit":"Clubs"}}},
+            {"timestamp":1615925235967,"username":"geoff","action":{"action":"ReceiveCard","card":{"rank":"Seven","suit":"Diamonds"}}},
+            {"timestamp":1615925235968,"username":"geoff","action":{"action":"EndDeal"}},
+            {"timestamp":1615925258442,"username":"geoff","action":{"action":"ChooseTrumps","suit":"Diamonds"}},
+            {"timestamp":1615925260577,"username":"kat","action":{"action":"PlayCard","card":{"rank":"King","suit":"Clubs"}}},
+            {"timestamp":1615925262207,"username":"geoff","action":{"action":"PlayCard","card":{"rank":"Seven","suit":"Diamonds"}}},
+            {"timestamp":1615925262209,"username":"geoff","action":{"action":"WinTrick"}},
+            {"timestamp":1615925263408,"username":"geoff","action":{"action":"PlayCard","card":{"rank":"Eight","suit":"Diamonds"}}},
+            {"timestamp":1615925264130,"username":"kat","action":{"action":"PlayCard","card":{"rank":"Jack","suit":"Diamonds"}}},
+            {"timestamp":1615925264133,"username":"kat","action":{"action":"WinTrick"}},
+            {"timestamp":1615925264660,"username":"kat","action":{"action":"PlayCard","card":{"rank":"Ten","suit":"Spades"}}},
+            {"timestamp":1615925265416,"username":"geoff","action":{"action":"PlayCard","card":{"rank":"Seven","suit":"Hearts"}}},
+            {"timestamp":1615925265419,"username":"kat","action":{"action":"WinTrick"}},
+            {"timestamp":1615925265420,"username":"kat","action":{"action":"WinCall"}},
+            {"timestamp":1615925265422,"username":"kat","action":{"action":"NextToDeal"}},
+            {"timestamp":1615925265423,"username":"geoff","action":{"action":"ReceiveCard","card":{"rank":"King","suit":"Diamonds"}}},
+            {"timestamp":1615925265425,"username":"kat","action":{"action":"ReceiveCard","card":{"rank":"Seven","suit":"Diamonds"}}},
+            {"timestamp":1615925265426,"username":"geoff","action":{"action":"ReceiveCard","card":{"rank":"Ace","suit":"Diamonds"}}},
+            {"timestamp":1615925265428,"username":"kat","action":{"action":"ReceiveCard","card":{"rank":"Nine","suit":"Clubs"}}},
+            {"timestamp":1615925265429,"username":"kat","action":{"action":"EndDeal"}},
+            {"timestamp":1615925268602,"username":"kat","action":{"action":"ChooseTrumps","suit":"Clubs"}},
+            {"timestamp":1615925270715,"username":"geoff","action":{"action":"PlayCard","card":{"rank":"Ace","suit":"Diamonds"}}},
+            {"timestamp":1615925272007,"username":"kat","action":{"action":"PlayCard","card":{"rank":"Seven","suit":"Diamonds"}}},
+            {"timestamp":1615925272010,"username":"geoff","action":{"action":"WinTrick"}},
+            {"timestamp":1615925273054,"username":"geoff","action":{"action":"PlayCard","card":{"rank":"King","suit":"Diamonds"}}},
+            {"timestamp":1615925273976,"username":"kat","action":{"action":"PlayCard","card":{"rank":"Nine","suit":"Clubs"}}},
+            {"timestamp":1615925273979,"username":"kat","action":{"action":"WinTrick"}},
+            {"timestamp":1615925273980,"username":"geoff","action":{"action":"RevealCard","card":{"rank":"Queen","suit":"Spades"}}},
+            {"timestamp":1615925273983,"username":"kat","action":{"action":"RevealCard","card":{"rank":"Eight","suit":"Hearts"}}},
+            {"timestamp":1615925273984,"username":"geoff","action":{"action":"WinCall"}},
+            {"timestamp":1615925273986,"username":"geoff","action":{"action":"NextToDeal"}},
+            {"timestamp":1615925273987,"username":"kat","action":{"action":"ReceiveCard","card":{"rank":"Six","suit":"Spades"}}},
+            {"timestamp":1615925273988,"username":"geoff","action":{"action":"ReceiveCard","card":{"rank":"Eight","suit":"Diamonds"}}},
+            {"timestamp":1615925273989,"username":"geoff","action":{"action":"EndDeal"}},
+            {"timestamp":1615925296989,"username":"geoff","action":{"action":"ChooseTrumps","suit":"Diamonds"}},
+            {"timestamp":1615925298327,"username":"kat","action":{"action":"PlayCard","card":{"rank":"Six","suit":"Spades"}}},
+            {"timestamp":1615925298327,"username":"geoff","action":{"action":"PlayCard","card":{"rank":"Eight","suit":"Diamonds"}}},
+            {"timestamp":1615925299327,"username":"geoff","action":{"action":"WinTrick"}},
+            {"timestamp":1615925299527,"username":"kat","action":{"action":"KnockedOut"}},
+            {"timestamp":1615925300327,"username":"geoff","action":{"action":"WinGame"}}
+        ]"#;
+        let actions = serde_json::from_str(actions).unwrap();
+
+        let settings = r#"{"format":"KnockOutWhist","title":"Zesty Diversion","max_players":2}"#;
+        let settings = serde_json::from_str(settings).unwrap();
+
+        let seed = r#"{"rng":"ChaCha20","seed":"0fb90c54f1e742d4e7602bb81024779b38110ae95c0e572ecc451347cc48a9ec"}"#;
+        let seed = serde_json::from_str(seed).unwrap();
+
+        test_game(actions, settings, seed);
+    }
 }