From 1af497f063eeaaaa8eaf33af4cc89e1de6c12234 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Varga=20D=C3=A1vid=20Lajos?= Date: Tue, 11 Nov 2025 10:33:51 +0100 Subject: [PATCH] implemented the generation of LUT: KNIGHT_ATTACK_MAP --- engine/src/bitboard/attackmaps.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/engine/src/bitboard/attackmaps.rs b/engine/src/bitboard/attackmaps.rs index fa229cf..23c41df 100644 --- a/engine/src/bitboard/attackmaps.rs +++ b/engine/src/bitboard/attackmaps.rs @@ -46,7 +46,18 @@ pub static PAWN_ATTACK_MAP: Lazy<[[u64; 2]; 64]> = Lazy::new(|| { // KNIGHT_ATTACK_MAP[] pub static KNIGHT_ATTACK_MAP: Lazy<[u64; 64]> = Lazy::new(|| { - let table: [u64; 64] = [0u64; 64]; + let mut table: [u64; 64] = [0u64; 64]; + + for sq in 0..64 { + let knight: u64 = 1 << sq; + + let far_left_attacks: u64 = knight << 6 | knight >> 10; + let near_left_attacks: u64 = knight << 15 | knight >> 17; + let far_right_attacks: u64 = knight << 10 | knight >> 6; + let near_right_attacks: u64 = knight << 17 | knight >> 15; + + table[sq] = (far_left_attacks & !GH_FILE) | (far_right_attacks & !AB_FILE) | (near_left_attacks & !H_FILE) | (near_right_attacks & !A_FILE); + } return table; });