Trait GameState
minmax
pub trait GameState: Clone { type Move: Clone; fn next_player(&self) -> Player; fn apply_move(&mut self, mov: Self::Move); fn get_moves(&self) -> Vec<Self::Move>; fn eval_score(&self) -> i32; fn solve_depth(&self, player: Player, depth: usize) -> Option<Self::Move> { ... } }
type Move: Clone
fn next_player(&self) -> Player
fn apply_move(&mut self, mov: Self::Move)
fn get_moves(&self) -> Vec<Self::Move>
fn eval_score(&self) -> i32
fn solve_depth(&self, player: Player, depth: usize) -> Option<Self::Move>