diff options
author | Kjetil Orbekk <kj@orbekk.com> | 2022-09-23 07:05:54 -0400 |
---|---|---|
committer | Kjetil Orbekk <kj@orbekk.com> | 2022-09-23 07:05:54 -0400 |
commit | 112d6d5063d1c6ef8ddf4d827decbfaf0639dbc7 (patch) | |
tree | 7b5e7346a9c177892bc70440a8c955ebc3cb7fda | |
parent | 507a81f25dc6e38df91dce2eed63a8b7d282184f (diff) |
Add TurnInPlay::suit() to identify the lead suit
-rw-r--r-- | webapp/src/bridge_engine.rs | 12 |
1 files changed, 12 insertions, 0 deletions
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<Suit> { + 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() } |