From: Scott Worley Date: Tue, 18 Jul 2023 20:00:26 +0000 (-0700) Subject: Refactor momentum_player() for clarity X-Git-Url: http://git.scottworley.com/pluta-lesnura/commitdiff_plain/c5e4b1eb46c33d636e95f3dbbbdf0bb15ce5d2ef?ds=sidebyside Refactor momentum_player() for clarity --- diff --git a/src/lib.rs b/src/lib.rs index cae3132..c46aa7d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -444,15 +444,14 @@ pub fn random_player(draw_chance: f64) -> Player { #[must_use] pub fn momentum_player(mut fallback: Player) -> Player { Player(Box::new(move |game: &Game| -> Play { - match (&game.phase, game.discard.top().and_then(Card::suit)) { - (Phase::Play, Some(suit)) => { - match game.current_player_hand().filter_by_suit(suit).random() { - Some(card) => Play::Play(*card), - _ => fallback.0(game), + if game.phase == Phase::Play { + if let Some(suit) = game.discard.top().and_then(Card::suit) { + if let Some(card) = game.current_player_hand().filter_by_suit(suit).random() { + return Play::Play(*card); } } - _ => fallback.0(game), } + fallback.0(game) })) }