add switching sides

This commit is contained in:
Dmitry Fedotov
2025-04-07 02:28:36 +03:00
parent d9f43036c3
commit b42659a604
3 changed files with 31 additions and 11 deletions

View File

@@ -8,10 +8,10 @@ pub struct PlayerConsole {
}
impl PlayerConsole {
pub fn new(name: &str, p: Cell) -> impl Player {
pub fn new(name: &str) -> impl Player {
PlayerConsole {
name: name.to_owned(),
piece: p,
piece: Cell::CellEmpty,
}
}
@@ -19,6 +19,13 @@ impl PlayerConsole {
return self.name.as_str();
}
pub fn start_new_game(&mut self, p: Cell) -> Result<(), Box<dyn std::error::Error>> {
self.piece = p;
println!("{}, you are now playing {}", self.name, p);
Ok(())
}
pub fn request_move(&self, _: &Board) -> Result<Move, Box<dyn std::error::Error>> {
let mut x: usize = 0;
let mut y: usize = 0;
@@ -65,6 +72,10 @@ impl PlayerConsole {
}
impl Player for PlayerConsole {
fn start_new_game(&mut self, p: Cell) -> Result<(), Box<dyn std::error::Error>> {
return self.start_new_game(p);
}
fn request_move(&self, b: &Board) -> Result<Move, Box<dyn std::error::Error>> {
self.request_move(b)
}

View File

@@ -1,9 +1,10 @@
mod human;
use crate::game::{Board, Move};
use crate::game::{Board, Cell, Move};
pub use human::PlayerConsole;
pub trait Player {
fn start_new_game(&mut self, p: Cell) -> Result<(), Box<dyn std::error::Error>>;
fn request_move(&self, b: &Board) -> Result<Move, Box<dyn std::error::Error>>;
fn name(&self) -> &str;
}