diff options
author | Kjetil Orbekk <kj@orbekk.com> | 2022-09-21 16:20:59 -0400 |
---|---|---|
committer | Kjetil Orbekk <kj@orbekk.com> | 2022-09-21 16:20:59 -0400 |
commit | 55f6d120d492755a1f2a5bd66d1819c8b2ad9f31 (patch) | |
tree | 42425ab456cf8f51f9cfb8a1ac6e8a3bdeaac7f7 /webapp/src/components | |
parent | ea1ce2fc2a5fa05ea8774ec325c5afe8ace358de (diff) |
Add state machine for playing a deal
Diffstat (limited to 'webapp/src/components')
-rw-r--r-- | webapp/src/components/game.rs | 26 |
1 files changed, 10 insertions, 16 deletions
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 @@ -9,24 +9,18 @@ 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 { dealer: Player, 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! { <p>{ "Time to play" }</p> }, GameState::PassedOut { .. } => html! { <p>{ "Everyone passed" }</p> }, }; |