From 55f6d120d492755a1f2a5bd66d1819c8b2ad9f31 Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Wed, 21 Sep 2022 16:20:59 -0400 Subject: Add state machine for playing a deal --- webapp/src/components/game.rs | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) (limited to 'webapp/src/components') diff --git a/webapp/src/components/game.rs b/webapp/src/components/game.rs index 21b0966..5258041 100644 --- a/webapp/src/components/game.rs +++ b/webapp/src/components/game.rs @@ -8,12 +8,6 @@ use yew::prelude::*; pub const SUIT_DISPLAY_ORDER: [Suit; 4] = [Suit::Diamond, Suit::Club, Suit::Heart, Suit::Spade]; -#[derive(Debug)] -enum Phase { - Bidding, - Cardplay, -} - #[derive(Debug)] enum GameState { Bidding { @@ -21,12 +15,12 @@ enum GameState { deal: Deal, }, PassedOut { - dealer: Player, + _dealer: Player, deal: Deal, - bidding: bridge_engine::Bidding, + _bidding: bridge_engine::Bidding, }, Play { - dealer: Player, + _dealer: Player, deal: Deal, contract: Contract, bidding: bridge_engine::Bidding, @@ -78,15 +72,15 @@ pub fn game() -> Html { Callback::from(move |(contract, bidding)| { state.set(match contract { Some(contract) => GameState::Play { - dealer: dealer, + _dealer: dealer, deal: deal.clone(), contract, bidding, }, None => GameState::PassedOut { - dealer: dealer, + _dealer: dealer, deal: deal.clone(), - bidding, + _bidding: bidding, }, }); }) @@ -96,10 +90,10 @@ pub fn game() -> Html { } } GameState::Play { - dealer, - deal, - contract, - bidding, + _dealer: _, + deal: _, + contract: _, + bidding: _, } => html! {

{ "Time to play" }

}, GameState::PassedOut { .. } => html! {

{ "Everyone passed" }

}, }; -- cgit v1.2.3