mirror of
https://github.com/Noratrieb/minmax.git
synced 2026-01-14 15:25:08 +01:00
fix
This commit is contained in:
parent
9dcde0e451
commit
3d90a3ea0a
2 changed files with 7 additions and 16 deletions
|
|
@ -18,9 +18,9 @@ public class RustPlayer extends Connect4ArenaMain.DefaultPlayer {
|
||||||
if (stone == null) {
|
if (stone == null) {
|
||||||
value = 2;
|
value = 2;
|
||||||
} else if (stone == Connect4ArenaMain.Stone.BLUE) {
|
} else if (stone == Connect4ArenaMain.Stone.BLUE) {
|
||||||
value = 0;
|
value = 1;
|
||||||
} else {
|
} else {
|
||||||
value = 1; // red
|
value = 0; // red
|
||||||
}
|
}
|
||||||
boardBuf[i] = value;
|
boardBuf[i] = value;
|
||||||
}
|
}
|
||||||
|
|
@ -30,8 +30,8 @@ public class RustPlayer extends Connect4ArenaMain.DefaultPlayer {
|
||||||
@Override
|
@Override
|
||||||
protected int play() {
|
protected int play() {
|
||||||
byte player = switch (this.myColor) {
|
byte player = switch (this.myColor) {
|
||||||
case BLUE -> 0;
|
case BLUE -> 1;
|
||||||
case RED -> 1;
|
case RED -> 0;
|
||||||
};
|
};
|
||||||
byte[] boardBuf = RustPlayer.encodeBoard(this.board);
|
byte[] boardBuf = RustPlayer.encodeBoard(this.board);
|
||||||
return RustPlayer.rustPlay(player, boardBuf);
|
return RustPlayer.rustPlay(player, boardBuf);
|
||||||
|
|
|
||||||
|
|
@ -34,10 +34,7 @@ fn crate_board(java_board: &[i8]) -> Connect4 {
|
||||||
for i in 0..28 {
|
for i in 0..28 {
|
||||||
let java_int = java_board[i];
|
let java_int = java_board[i];
|
||||||
let rust_value = match java_int {
|
let rust_value = match java_int {
|
||||||
0 => {
|
0 => Some(Player::X),
|
||||||
dbg!("x player {i}", i, map_idx(i));
|
|
||||||
Some(Player::X)
|
|
||||||
},
|
|
||||||
1 => Some(Player::O),
|
1 => Some(Player::O),
|
||||||
2 => None,
|
2 => None,
|
||||||
_ => unreachable!(),
|
_ => unreachable!(),
|
||||||
|
|
@ -51,8 +48,8 @@ fn crate_board(java_board: &[i8]) -> Connect4 {
|
||||||
board
|
board
|
||||||
}
|
}
|
||||||
|
|
||||||
// 0 -> BLUE -> X
|
// 0 -> RED -> X
|
||||||
// 1 -> RED -> O
|
// 1 -> BLUE -> O
|
||||||
// 2 -> empty
|
// 2 -> empty
|
||||||
pub fn wrap_player(env: JNIEnv<'_>, current_player: i8, board: JObject<'_>) -> i32 {
|
pub fn wrap_player(env: JNIEnv<'_>, current_player: i8, board: JObject<'_>) -> i32 {
|
||||||
let board_size = env.get_array_length(board.into_raw()).unwrap();
|
let board_size = env.get_array_length(board.into_raw()).unwrap();
|
||||||
|
|
@ -64,12 +61,8 @@ pub fn wrap_player(env: JNIEnv<'_>, current_player: i8, board: JObject<'_>) -> i
|
||||||
|
|
||||||
let slice = unsafe { std::slice::from_raw_parts(byte_array.as_ptr() as *const _, 28) };
|
let slice = unsafe { std::slice::from_raw_parts(byte_array.as_ptr() as *const _, 28) };
|
||||||
|
|
||||||
dbg!(slice);
|
|
||||||
|
|
||||||
let mut board = crate_board(slice);
|
let mut board = crate_board(slice);
|
||||||
|
|
||||||
println!("{board}");
|
|
||||||
|
|
||||||
let mut player = PerfectPlayer::new(false);
|
let mut player = PerfectPlayer::new(false);
|
||||||
|
|
||||||
let current_player_rust = match current_player {
|
let current_player_rust = match current_player {
|
||||||
|
|
@ -86,8 +79,6 @@ pub fn wrap_player(env: JNIEnv<'_>, current_player: i8, board: JObject<'_>) -> i
|
||||||
|
|
||||||
let java_idx = map_idx(result_move) as i32;
|
let java_idx = map_idx(result_move) as i32;
|
||||||
|
|
||||||
dbg!(result_move, java_idx);
|
|
||||||
|
|
||||||
java_idx
|
java_idx
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue