summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--server/src/play.rs20
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(())
+ }
}
}