tic tac toe

This commit is contained in:
nora 2022-11-21 09:23:31 +01:00
parent 43d39fba30
commit c7a6bdf3c0
No known key found for this signature in database
11 changed files with 149 additions and 40 deletions

View file

@ -4,14 +4,18 @@ use crate::{
};
impl Board {
pub fn play<A: GamePlayer, B: GamePlayer>(&mut self, a: &mut A, b: &mut B) -> Option<Player> {
pub fn default_play<X: GamePlayer, O: GamePlayer>() -> Option<Player> {
Self::empty().play(&mut X::default(), &mut O::default())
}
pub fn play<A: GamePlayer, B: GamePlayer>(&mut self, x: &mut A, o: &mut B) -> Option<Player> {
let mut current_player = Player::X;
for _ in 0..9 {
if current_player == Player::X {
a.next_move(self, current_player);
x.next_move(self, current_player);
} else {
b.next_move(self, current_player);
o.next_move(self, current_player);
}
match self.result() {