From 4de62a2d0f3fdb1f59fa91916f8f81d2d56a561f Mon Sep 17 00:00:00 2001 From: Simon Gardling Date: Thu, 6 Mar 2025 15:38:06 -0500 Subject: [PATCH] add debug stuff to game_inner --- src/game_inner.rs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/game_inner.rs b/src/game_inner.rs index 0790db1..bbf6671 100644 --- a/src/game_inner.rs +++ b/src/game_inner.rs @@ -1,6 +1,6 @@ use crate::{ agent::Agent, - repr::{Board, Piece, Winner}, + repr::{Board, CoordPair, Piece, Winner}, }; 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 { players: [Box; 2], board: Board, do_print: bool, + move_log: Vec<(Option, Piece)>, + first_board: Board, } impl GameInner { @@ -47,6 +57,8 @@ impl GameInner { players: [player1, player2], board, do_print, + move_log: Vec::new(), + first_board: board, } } @@ -58,6 +70,7 @@ impl GameInner { // when it comes to human input loop { 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 { match self.board.place(coord, player_color) { @@ -71,8 +84,8 @@ impl GameInner { Err(err) => { panic!( - "Invalid move by Player {}: {}. Move: {}", - player_i, err, coord + "Invalid move by Player {}: {}. Move: {} State: {:?}", + player_i, err, coord, self ); } }