From f06fb735448926bdcc0e6448644895b4c83a4d1f Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Thu, 22 Dec 2022 15:23:39 -0500 Subject: Add support for advancing the card play using bots --- server/src/play.rs | 20 ++++++++++++++++---- 1 file 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>( 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(()) + } } } -- cgit v1.2.3