add debug stuff to game_inner
This commit is contained in:
parent
52ad7ba53d
commit
4de62a2d0f
@ -1,6 +1,6 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
agent::Agent,
|
agent::Agent,
|
||||||
repr::{Board, Piece, Winner},
|
repr::{Board, CoordPair, Piece, Winner},
|
||||||
};
|
};
|
||||||
|
|
||||||
impl std::fmt::Display for GameInner {
|
impl std::fmt::Display for GameInner {
|
||||||
@ -18,10 +18,20 @@ impl std::fmt::Display for GameInner {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl std::fmt::Debug for GameInner {
|
||||||
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||||
|
writeln!(f, "FirstBoard:\n{}", self.first_board)?;
|
||||||
|
writeln!(f, "\nmove_log: {:?}", self.move_log)?;
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub struct GameInner {
|
pub struct GameInner {
|
||||||
players: [Box<dyn Agent>; 2],
|
players: [Box<dyn Agent>; 2],
|
||||||
board: Board,
|
board: Board,
|
||||||
do_print: bool,
|
do_print: bool,
|
||||||
|
move_log: Vec<(Option<CoordPair>, Piece)>,
|
||||||
|
first_board: Board,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl GameInner {
|
impl GameInner {
|
||||||
@ -47,6 +57,8 @@ impl GameInner {
|
|||||||
players: [player1, player2],
|
players: [player1, player2],
|
||||||
board,
|
board,
|
||||||
do_print,
|
do_print,
|
||||||
|
move_log: Vec::new(),
|
||||||
|
first_board: board,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -58,6 +70,7 @@ impl GameInner {
|
|||||||
// when it comes to human input
|
// when it comes to human input
|
||||||
loop {
|
loop {
|
||||||
let player_move = self.players[player_i].next_move(&self.board);
|
let player_move = self.players[player_i].next_move(&self.board);
|
||||||
|
self.move_log.push((player_move, player_color));
|
||||||
|
|
||||||
if let Some(coord) = player_move {
|
if let Some(coord) = player_move {
|
||||||
match self.board.place(coord, player_color) {
|
match self.board.place(coord, player_color) {
|
||||||
@ -71,8 +84,8 @@ impl GameInner {
|
|||||||
|
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
panic!(
|
panic!(
|
||||||
"Invalid move by Player {}: {}. Move: {}",
|
"Invalid move by Player {}: {}. Move: {} State: {:?}",
|
||||||
player_i, err, coord
|
player_i, err, coord, self
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user