From 20b6a686b8b67b2d9ceda4875c179c0e693689af Mon Sep 17 00:00:00 2001 From: Mike White Date: Sat, 18 Sep 2021 23:21:32 -0400 Subject: Fixed the best move so it would actually make good moves --- ai/src/lib.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'ai/src') diff --git a/ai/src/lib.rs b/ai/src/lib.rs index 426ee47..21fcf1e 100644 --- a/ai/src/lib.rs +++ b/ai/src/lib.rs @@ -142,9 +142,11 @@ pub fn best_move(depth: usize, board: CheckersBitBoard) -> Move { let mut best_eval = 0.0; let mut best_move = MaybeUninit::uninit(); for current_move in PossibleMoves::moves(board) { - let current_eval = eval_multithreaded(depth - 1, best_eval, 1.0, unsafe { - current_move.apply_to(board) - }); + let new_board = unsafe { current_move.apply_to(board) }; + let mut current_eval = eval_multithreaded(depth - 1, best_eval, 1.0, new_board); + if new_board.turn() != board.turn() { + current_eval = 1.0 - current_eval; + } if current_eval > best_eval { best_eval = current_eval; best_move = MaybeUninit::new(current_move); -- cgit v1.2.3