From 5b6318442eb2289abedc7f874f0978fc353e2a12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Varga=20D=C3=A1vid=20Lajos?= Date: Thu, 27 Nov 2025 22:31:06 +0200 Subject: [PATCH] added part of getter bitboard::board::fen --- engine/src/bitboard/board.rs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/engine/src/bitboard/board.rs b/engine/src/bitboard/board.rs index 85fdf44..78c96e2 100644 --- a/engine/src/bitboard/board.rs +++ b/engine/src/bitboard/board.rs @@ -159,6 +159,30 @@ impl Board { return if self.side_to_move == 0 { self.bitboards[5].trailing_zeros() } else { self.bitboards[11].trailing_zeros() }; } + pub fn fen(&self) -> String { + let mut fen = String::new(); + + for row in (0..8).rev() { + let mut empty = 0; + for col in 0..8 { + let sq = row * 8 + col; + if let Some(piece) = self.get_piece_character(sq) { + if empty > 0 { + fen.push_str(&empty.to_string()); + } + fen.push(piece); + } else { + empty += 1; + if col == 7 { + fen.push_str(&empty.to_string()); + } + } + } + } + + return fen; + } + fn calc_occupancy(&mut self) { self.occupancy = [0u64; 3]; for b in 0..6 {