diff --git a/src/agent/expectimax.rs b/src/agent/expectimax.rs new file mode 100644 index 0000000..09ae833 --- /dev/null +++ b/src/agent/expectimax.rs @@ -0,0 +1,31 @@ +use enum_map::EnumMap; + +use crate::game::{Game, Move}; + +use super::Agent; + +type MoveScores = EnumMap; +pub struct Expectimax { + depth: usize, + scores: MoveScores, +} + +impl Agent for Expectimax { + fn new() -> Self + where + Self: Sized, + { + Expectimax { + depth: 8, + scores: MoveScores::default(), + } + } + + fn get_move(&mut self, game: &Game) -> Move { + todo!() + } + + fn tui_messages(&self) -> Vec { + todo!() + } +} diff --git a/src/agent/mod.rs b/src/agent/mod.rs index db916ac..4efac4a 100644 --- a/src/agent/mod.rs +++ b/src/agent/mod.rs @@ -3,6 +3,7 @@ use tui::text::Spans; use crate::game::{Game, Move}; pub mod random; +pub mod expectimax; pub trait Agent { fn new() -> Self