diff options
-rw-r--r-- | server/src/play.rs | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/server/src/play.rs b/server/src/play.rs index 62b6219..16ef5a4 100644 --- a/server/src/play.rs +++ b/server/src/play.rs @@ -2,11 +2,14 @@ use std::mem; use async_trait::async_trait; use protocol::{ - bot::BiddingBot, - bridge_engine::{Bid, BiddingStatePlayerView, Deal, GameState, Player}, + bot::{BiddingBot, PlayingBot}, + bridge_engine::{ + Bid, BiddingStatePlayerView, Deal, GameState, PlayStatePlayerView, + Player, GameResult, PlayResult, + }, card::Card, play_result::MoveResult, - simple_bots::AlwaysPassBiddingBot, + simple_bots::{AlwaysPassBiddingBot, RandomPlayingBot}, }; use rand::random; use serde::{de::DeserializeOwned, Deserialize, Serialize}; @@ -254,7 +257,16 @@ pub async fn advance_play<J: Journal<TableUpdate>>( table.bid(bid).await?; Ok(()) } - GameState::Play(_) => todo!(), + GameState::Play(game) => { + let player_view = PlayStatePlayerView::from_play_state( + game, + game.current_player(), + ); + let bot = RandomPlayingBot {}; + let card = bot.play(&player_view).await; + table.play(card).await?; + Ok(()) + } } } |