From 685ac902e3faf4ed5a76b8c859b01f7d2e2d9ea0 Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Fri, 25 Nov 2022 17:10:17 -0500 Subject: Add state machine for GameState and corresponding player view of the state --- server/src/main.rs | 6 +++--- server/src/play.rs | 7 ++----- 2 files changed, 5 insertions(+), 8 deletions(-) (limited to 'server/src') diff --git a/server/src/main.rs b/server/src/main.rs index b8ee403..cf42b3f 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -10,7 +10,7 @@ use axum::{ Json, Router, }; use protocol::{Table, UserInfo}; -use protocol::bridge_engine::{TableView, Player}; +use protocol::bridge_engine::{GameStatePlayerView, Player}; use server::ContextExtension; use tower_cookies::{Cookie, CookieManagerLayer, Cookies}; use tower_http::trace::TraceLayer; @@ -138,12 +138,12 @@ async fn get_table_view( _session: AuthenticatedSession, extension: ContextExtension, Path(id): Path, -) -> Result, BridgeError> { +) -> Result, BridgeError> { info!("Getting table state for {id:}"); let jnl = DbJournal::new(extension.db.clone(), id); let table = play::Table::new_or_replay(jnl).await?; let response = - Json(TableView::from_game_state(table.game(), Player::South)); + Json(GameStatePlayerView::from_game_state(table.game(), Player::South)); info!("Response: {response:#?}"); Ok(response) } diff --git a/server/src/play.rs b/server/src/play.rs index 256392d..9ae3d54 100644 --- a/server/src/play.rs +++ b/server/src/play.rs @@ -91,10 +91,7 @@ impl Table { } async fn init(journal: &mut J) -> Result { - let game = GameState::Bidding { - dealer: Player::East, - deal: bridge_engine::deal(), - }; + let game = GameState::new(bridge_engine::deal(), Player::East); journal.append(0, json!(game)).await?; Ok(game) } @@ -169,7 +166,7 @@ mod test { async fn test_new_table() { let t1: Table = Table::new(Default::default()).await.unwrap(); match t1.game { - GameState::Bidding { dealer, deal } => (), + GameState::Bidding { .. } => (), _ => panic!("should be Bidding"), }; } -- cgit v1.2.3