summaryrefslogtreecommitdiff
path: root/webapp/src
diff options
context:
space:
mode:
authorKjetil Orbekk <kj@orbekk.com>2022-09-23 07:05:54 -0400
committerKjetil Orbekk <kj@orbekk.com>2022-09-23 07:05:54 -0400
commit112d6d5063d1c6ef8ddf4d827decbfaf0639dbc7 (patch)
tree7b5e7346a9c177892bc70440a8c955ebc3cb7fda /webapp/src
parent507a81f25dc6e38df91dce2eed63a8b7d282184f (diff)
Add TurnInPlay::suit() to identify the lead suit
Diffstat (limited to 'webapp/src')
-rw-r--r--webapp/src/bridge_engine.rs12
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()
}