added LUT KING_SAFETY_BISHOP_MASK in bitboard::attackmaps for king safety checks

This commit is contained in:
Varga Dávid Lajos
2025-11-20 20:25:14 +01:00
parent d8eae9177b
commit 8c0fa09f1e

View File

@@ -118,6 +118,7 @@ pub static BISHOP_MOVE_MASK: Lazy<[u64; 64]> = Lazy::new(|| {
table
});
// KING_SAFETY_ROOK_MASK[<square_index>]
pub static KING_SAFETY_ROOK_MASK: Lazy<[u64; 64]> = Lazy::new(|| {
let mut table = [0u64; 64];
@@ -134,6 +135,23 @@ pub static KING_SAFETY_ROOK_MASK: Lazy<[u64; 64]> = Lazy::new(|| {
table
});
// KING_SAFETY_BISHOP_MASK[<square_index>]
pub static KING_SAFETY_BISHOP_MASK: Lazy<[u64; 64]> = Lazy::new(|| {
let mut table = [0u64; 64];
for sq in 0..64 {
let mut mask = KING_ATTACK_MAP[sq];
while mask != 0 {
let next_sq = mask.trailing_zeros();
table[sq] |= BISHOP_MOVE_MASK[next_sq as usize];
mask &= !(1 << next_sq);
}
}
table
});
// <----- TESTS ----->