From 6b309efd32b975b9f96e82c6e6c2a307f9212e80 Mon Sep 17 00:00:00 2001 From: Nilstrieb <48135649+Nilstrieb@users.noreply.github.com> Date: Sat, 28 Jan 2023 09:56:40 +0100 Subject: [PATCH] Fix best move in FFI --- minmax-rs/src/minmax.rs | 11 ++++------- rs-wrapper/src/lib.rs | 2 +- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/minmax-rs/src/minmax.rs b/minmax-rs/src/minmax.rs index 0239ba7..c7439b3 100644 --- a/minmax-rs/src/minmax.rs +++ b/minmax-rs/src/minmax.rs @@ -35,8 +35,9 @@ impl PerfectPlayer { self } - pub fn best_move(&self) -> G::Move { - self.best_move.expect("no move made yet") + pub fn best_move(&self, board: &G) -> G::Move { + self.best_move + .unwrap_or_else(|| board.possible_moves().next().expect("cannot make move")) } fn minmax( @@ -141,11 +142,7 @@ impl GamePlayer for PerfectPlayer { 0, ); - board.make_move( - self.best_move - .unwrap_or_else(|| board.possible_moves().next().expect("cannot make move")), - this_player, - ); + board.make_move(self.best_move(board), this_player); if self.print_time { let duration = start.elapsed(); diff --git a/rs-wrapper/src/lib.rs b/rs-wrapper/src/lib.rs index a4f6823..480cc86 100644 --- a/rs-wrapper/src/lib.rs +++ b/rs-wrapper/src/lib.rs @@ -74,7 +74,7 @@ pub fn play_move(env: JNIEnv<'_>, current_player: i8, board: JObject<'_>) -> i32 }; player.next_move(&mut board, current_player_rust); - let result_move = player.best_move(); + let result_move = player.best_move(&board); board.undo_move(result_move); let result_move = board.drop_player(result_move);