Add check extention

This commit is contained in:
stefiosif
2025-01-28 20:03:14 +02:00
parent 3f08e194f4
commit 91ad3de8b1

View File

@@ -16,7 +16,7 @@ pub fn negamax(
game: &mut Game, game: &mut Game,
mut alpha: i32, mut alpha: i32,
beta: i32, beta: i32,
depth: u8, mut depth: u8,
plies: u8, plies: u8,
time: &TimeInfo, time: &TimeInfo,
nodes: &mut u64, nodes: &mut u64,
@@ -29,13 +29,19 @@ pub fn negamax(
return Ok(0); return Ok(0);
} }
let color = game.current_player();
let in_check = game.board.king_under_check(color);
if in_check {
depth += 1;
}
if depth == 0 { if depth == 0 {
let q_score = quiescence(game, alpha, beta, time, nodes).map_err(|e| anyhow!("{e}"))?; let q_score = quiescence(game, alpha, beta, time, nodes).map_err(|e| anyhow!("{e}"))?;
return Ok(q_score); return Ok(q_score);
} }
let mut legal_moves = 0; let mut legal_moves = 0;
let color = game.current_player();
let mut best_score = MIN_SCORE; let mut best_score = MIN_SCORE;
let mut best_move = None; let mut best_move = None;
let mut moves = game.board.pseudo_moves_all(); let mut moves = game.board.pseudo_moves_all();
@@ -101,7 +107,7 @@ pub fn negamax(
} }
if legal_moves == 0 { if legal_moves == 0 {
if game.board.king_under_check(color) { if in_check {
return Ok(-MATE_SCORE + plies as i32); return Ok(-MATE_SCORE + plies as i32);
} }
return Ok(0); return Ok(0);