From 24ddc745732246b0a217c8e03368243fcad7e353 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Varga=20D=C3=A1vid=20Lajos?= Date: Thu, 27 Nov 2025 22:18:04 +0200 Subject: [PATCH] added specialized getter method get_piece_character to bitboard/board.rs --- engine/src/bitboard/board.rs | 42 ++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/engine/src/bitboard/board.rs b/engine/src/bitboard/board.rs index 483f1c4..85fdf44 100644 --- a/engine/src/bitboard/board.rs +++ b/engine/src/bitboard/board.rs @@ -196,4 +196,46 @@ impl Board { _ => () } } + pub fn get_piece_character(&self, index: i32) -> Option { + let sq = 1 << index; + + if (self.bitboards[0] & sq) != 0 { + return Some('P'); + } + if (self.bitboards[1] & sq) != 0 { + return Some('N'); + } + if (self.bitboards[2] & sq) != 0 { + return Some('B'); + } + if (self.bitboards[3] & sq) != 0 { + return Some('R'); + } + if (self.bitboards[4] & sq) != 0 { + return Some('Q'); + } + if (self.bitboards[5] & sq) != 0 { + return Some('K'); + } + if (self.bitboards[6] & sq) != 0 { + return Some('p'); + } + if (self.bitboards[7] & sq) != 0 { + return Some('n'); + } + if (self.bitboards[8] & sq) != 0 { + return Some('b'); + } + if (self.bitboards[9] & sq) != 0 { + return Some('r'); + } + if (self.bitboards[10] & sq) != 0 { + return Some('q'); + } + if (self.bitboards[11] & sq) != 0 { + return Some('k'); + } + + return None; + } } \ No newline at end of file