summaryrefslogtreecommitdiff
path: root/webapp/src/components
diff options
context:
space:
mode:
authorKjetil Orbekk <kj@orbekk.com>2022-09-21 16:20:59 -0400
committerKjetil Orbekk <kj@orbekk.com>2022-09-21 16:20:59 -0400
commit55f6d120d492755a1f2a5bd66d1819c8b2ad9f31 (patch)
tree42425ab456cf8f51f9cfb8a1ac6e8a3bdeaac7f7 /webapp/src/components
parentea1ce2fc2a5fa05ea8774ec325c5afe8ace358de (diff)
Add state machine for playing a deal
Diffstat (limited to 'webapp/src/components')
-rw-r--r--webapp/src/components/game.rs26
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> },
};