From 112d6d5063d1c6ef8ddf4d827decbfaf0639dbc7 Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Fri, 23 Sep 2022 07:05:54 -0400 Subject: Add TurnInPlay::suit() to identify the lead suit --- webapp/src/bridge_engine.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/webapp/src/bridge_engine.rs b/webapp/src/bridge_engine.rs index 6d13f50..a411c1c 100644 --- a/webapp/src/bridge_engine.rs +++ b/webapp/src/bridge_engine.rs @@ -79,6 +79,10 @@ impl TurnInPlay { } } + pub fn suit(&self) -> Option { + self.trick.cards_played.iter().next().map(|&Card(suit, _)| suit) + } + pub fn leader(&self) -> Player { self.trick.leader } @@ -631,6 +635,14 @@ mod tests { ); } + #[test] + fn lead_suit() { + let turn = TurnInPlay::new(Player::South); + assert_eq!(turn.suit(), None); + let turn = as_turn(turn.play("♣4".parse().unwrap())); + assert_eq!(turn.suit(), Some("♣".parse().unwrap())); + } + fn mkcard(s: &str) -> Card { Card::from_str(s).unwrap() } -- cgit v1.2.3