This commit is contained in:
Henri Bourcereau 2025-08-07 17:50:13 +02:00
parent 0dea88033e
commit 1c6c359676
9 changed files with 527 additions and 230 deletions

View file

@ -22,3 +22,4 @@ rand = "0.8"
env_logger = "0.10"
burn = { version = "0.17", features = ["ndarray", "autodiff"] }
burn-rl = { git = "https://github.com/yunjhongwu/burn-rl-examples.git", package = "burn-rl" }
log = "0.4.20"

View file

@ -1,6 +1,7 @@
pub mod dqn;
pub mod strategy;
use log::{error, info};
use store::{CheckerMove, Color, GameEvent, GameState, PlayerId, PointsRules, Stage, TurnStage};
pub use strategy::default::DefaultStrategy;
pub use strategy::dqn::DqnStrategy;
@ -63,8 +64,8 @@ impl Bot {
}
pub fn handle_event(&mut self, event: &GameEvent) -> Option<GameEvent> {
info!(">>>> {:?} BOT handle", self.color);
let game = self.strategy.get_mut_game();
// println!("----- before : {:?}", game);
let internal_event = if self.color == Color::Black {
&event.get_mirror()
} else {
@ -75,6 +76,7 @@ impl Bot {
let turn_stage = game.turn_stage;
game.consume(internal_event);
if game.stage == Stage::Ended {
info!("<<<< end {:?} BOT handle", self.color);
return None;
}
let active_player_id = if self.color == Color::Black {
@ -89,9 +91,7 @@ impl Bot {
if active_player_id == self.player_id {
let player_points = game.who_plays().map(|p| (p.points, p.holes));
if self.color == Color::Black {
println!(
" input (internal) evt : {internal_event:?}, {init_player_points:?}, {turn_stage:?}"
);
info!( " input (internal) evt : {internal_event:?}, points : {init_player_points:?}, stage : {turn_stage:?}");
}
let internal_event = match game.turn_stage {
TurnStage::MarkAdvPoints => Some(GameEvent::Mark {
@ -120,12 +120,15 @@ impl Bot {
_ => None,
};
return if self.color == Color::Black {
println!(" bot (internal) evt : {internal_event:?} - {player_points:?}");
info!(" bot (internal) evt : {internal_event:?} ; points : {player_points:?}");
info!("<<<< end {:?} BOT handle", self.color);
internal_event.map(|evt| evt.get_mirror())
} else {
info!("<<<< end {:?} BOT handle", self.color);
internal_event
};
}
info!("<<<< end {:?} BOT handle", self.color);
None
}