From 7c9c5484ba812e66da55b7112e1952252c9ecd1d Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Tue, 20 May 2025 19:29:39 -0700 Subject: [PATCH] [position, board] Remove a bunch of dead code --- board/src/move_counter.rs | 74 ------------------------------- position/src/lib.rs | 3 -- position/src/position/position.rs | 14 ------ position/src/sight/rays.rs | 27 ----------- 4 files changed, 118 deletions(-) delete mode 100644 board/src/move_counter.rs delete mode 100644 position/src/sight/rays.rs diff --git a/board/src/move_counter.rs b/board/src/move_counter.rs deleted file mode 100644 index 5de7760..0000000 --- a/board/src/move_counter.rs +++ /dev/null @@ -1,74 +0,0 @@ -use chessfriend_core::Color; - -#[derive(Default)] -pub enum AdvanceHalfMove { - Reset, - #[default] - Advance, -} - -#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)] -pub struct Clock { - /// The number of completed turns. A turn finishes when every player has moved. - pub full_move_number: u16, - - /// The number of moves by all players since the last pawn advance or capture. - pub half_move_number: u16, -} - -impl Clock { - pub fn advance(&mut self, advance_half_move: &AdvanceHalfMove) { - let next_color = self.active_color.next(); - - match self.active_color { - Color::Black => self.full_move_number += 1, - Color::White => {} - } - - self.half_move_number = match advance_half_move { - AdvanceHalfMove::Reset => 0, - AdvanceHalfMove::Advance => self.half_move_number + 1, - }; - - self.active_color = next_color; - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn default_state() { - let clock = Clock::default(); - assert_eq!(clock.active_color, Color::White); - assert_eq!(clock.half_move_number, 0); - assert_eq!(clock.full_move_number, 0); - } - - #[test] - fn advance() { - let mut clock = Clock::default(); - - clock.advance(&AdvanceHalfMove::default()); - assert_eq!(clock.active_color, Color::Black); - assert_eq!(clock.half_move_number, 1); - assert_eq!(clock.full_move_number, 0); - - clock.advance(&AdvanceHalfMove::default()); - assert_eq!(clock.active_color, Color::White); - assert_eq!(clock.half_move_number, 2); - assert_eq!(clock.full_move_number, 1); - - clock.advance(&AdvanceHalfMove::default()); - assert_eq!(clock.active_color, Color::Black); - assert_eq!(clock.half_move_number, 3); - assert_eq!(clock.full_move_number, 1); - - // The half move clock resets after a capture or pawn push. - clock.advance(&AdvanceHalfMove::Reset); - assert_eq!(clock.active_color, Color::White); - assert_eq!(clock.half_move_number, 0); - assert_eq!(clock.full_move_number, 2); - } -} diff --git a/position/src/lib.rs b/position/src/lib.rs index a17c5f6..b43d063 100644 --- a/position/src/lib.rs +++ b/position/src/lib.rs @@ -1,8 +1,5 @@ // Eryn Wells -mod check; -mod display; -mod move_generator; mod movement; mod position; mod sight; diff --git a/position/src/position/position.rs b/position/src/position/position.rs index b0e4c8a..7ea543b 100644 --- a/position/src/position/position.rs +++ b/position/src/position/position.rs @@ -13,7 +13,6 @@ use std::{cell::OnceCell, fmt, ops::BitOr}; #[derive(Clone, Debug, Eq)] pub struct Position { pub board: Board, - moves: OnceCell, pub(super) captures: [Vec; Color::NUM], } @@ -145,18 +144,6 @@ impl Position { }) } - pub fn has_en_passant_square(&self) -> bool { - self.board.en_passant().is_some() - } - - pub fn en_passant(&self) -> Option { - self.board.en_passant() - } - - fn _en_passant_target_square(&self) -> Option { - self.board.en_passant().map(EnPassant::target_square) - } - pub(crate) fn moves_for_piece(&self, piece: &PlacedPiece) -> Option<&MoveSet> { self.moves().moves_for_piece(piece) } @@ -237,7 +224,6 @@ impl Default for Position { fn default() -> Self { Self { board: Board::default(), - moves: OnceCell::new(), captures: Default::default(), } } diff --git a/position/src/sight/rays.rs b/position/src/sight/rays.rs deleted file mode 100644 index df376d7..0000000 --- a/position/src/sight/rays.rs +++ /dev/null @@ -1,27 +0,0 @@ -// Eryn Wells - -use chessfriend_bitboard::BitBoard; -use chessfriend_core::{Direction, Square}; - -fn _find_ray_connecting_squares(origin_square: Square, target_square: Square) -> BitBoard { - macro_rules! ray { - ($square:expr, $direction:expr) => { - ($direction, BitBoard::ray($square, $direction)) - }; - } - - let target: BitBoard = target_square.into(); - match Direction::ALL - .iter() - .map(|direction| ray!(origin_square, *direction)) - .find(|(direction, &ray)| (ray & target).is_populated()) - { - Some((direction, ray)) => { - if let Some(first_occupied_square) = BitBoard::$occupied_squares(&(ray & $blockers)).next() - let remainder = BitBoard::ray(first_occupied_square, direction); - let attack_ray = ray & !remainder; - attack_ray * ray - } - None => BitBoard::EMPTY, - } -}