diff --git a/src/repr/bitboard.rs b/src/repr/bitboard.rs index 57a08e1..4728493 100644 --- a/src/repr/bitboard.rs +++ b/src/repr/bitboard.rs @@ -11,7 +11,7 @@ pub type BitBoardInner = u64; pub struct BitBoard(BitBoardInner); // BitBoard should be big enough to fit all points on the board -const_assert!(std::mem::size_of::() * 8 >= Board::BOARD_AREA.0 as usize); +const_assert!(std::mem::size_of::() * 8 >= Board::AREA.0 as usize); impl BitBoard { #[allow(clippy::new_without_default)] @@ -46,7 +46,7 @@ impl BitBoard { } pub const fn east(&self, n: usize) -> Self { - let mask = !Self::col_mask(Board::BOARD_SIZE - 1).0; // Mask to block column BOARD_SIZE-1 bits + let mask = !Self::col_mask(Board::SIZE - 1).0; // Mask to block column BOARD_SIZE-1 bits Self((self.0 & mask) << n) } @@ -56,11 +56,11 @@ impl BitBoard { } pub const fn north(&self, n: usize) -> Self { - Self(self.0 >> (Board::BOARD_SIZE as usize * n)) + Self(self.0 >> (Board::SIZE as usize * n)) } pub const fn south(&self, n: usize) -> Self { - Self(self.0 << (Board::BOARD_SIZE as usize * n)) + Self(self.0 << (Board::SIZE as usize * n)) } pub const fn northeast(&self, n: usize) -> Self { @@ -95,9 +95,9 @@ impl BitBoard { const fn col_mask(col: CoordAxis) -> Self { let mut mask = 0; let mut i = 0; - while i < Board::BOARD_AREA.0 { + while i < Board::AREA.0 { mask |= 1 << (i + col); - i += Board::BOARD_SIZE; + i += Board::SIZE; } Self(mask) } @@ -155,7 +155,7 @@ mod test { #[test] fn set_and_get() { let mut b = BitBoard::new(); - for c in 0..Board::BOARD_AREA.0 { + for c in 0..Board::AREA.0 { assert!( !b.get(CoordPair(c)), "A just-initalized BitBoard should be completely empty" diff --git a/src/repr/board.rs b/src/repr/board.rs index 7d06eb0..7be64b5 100644 --- a/src/repr/board.rs +++ b/src/repr/board.rs @@ -10,13 +10,13 @@ use std::{ /// Map of all points on the board against some type T /// Used to index like so: example[i][j] /// with each coordinate -pub struct PosMap(ArrayVec); +pub struct PosMap(ArrayVec); impl PosMap { #[allow(clippy::new_without_default)] pub fn new() -> Self { Self(ArrayVec::from_iter( - (0..Board::BOARD_AREA.0).map(|_| Default::default()), + (0..Board::AREA.0).map(|_| Default::default()), )) } @@ -29,13 +29,13 @@ impl PosMap { } } -type PosMapOrig = [[T; Board::BOARD_SIZE as usize]; Board::BOARD_SIZE as usize]; +type PosMapOrig = [[T; Board::SIZE as usize]; Board::SIZE as usize]; impl From> for PosMap { fn from(value: PosMapOrig) -> Self { let mut new = Self::new(); - for i in 0..Board::BOARD_SIZE { - for j in 0..Board::BOARD_SIZE { + for i in 0..Board::SIZE { + for j in 0..Board::SIZE { new.set((i, j).into(), value[i as usize][j as usize]); } } @@ -97,25 +97,25 @@ pub struct Board { impl fmt::Display for Board { #[allow(clippy::repeat_once)] // clippy gets mad about when PADDING == 1 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - let horiz_sep_line = "-".repeat((Self::BOARD_SIZE * 2 + 1) as usize); + let horiz_sep_line = "-".repeat((Self::SIZE * 2 + 1) as usize); // basically calculates the # of digits BOARD_SIZE needs - const PADDING: usize = (Board::BOARD_SIZE - 1).ilog10() as usize + 1; + const PADDING: usize = (Board::SIZE - 1).ilog10() as usize + 1; let space_padding = " ".repeat(PADDING); // Print numbers at top so the board can be read more easier write!(f, "{} ", space_padding)?; - for j in (0..Self::BOARD_SIZE).rev() { + for j in (0..Self::SIZE).rev() { write!(f, "{:0PADDING$} ", j)?; } writeln!(f)?; - for i in (0..Self::BOARD_SIZE).rev() { + for i in (0..Self::SIZE).rev() { writeln!(f, "{}{}", space_padding, horiz_sep_line)?; write!(f, "{:0PADDING$}|", i)?; - for j in (0..Self::BOARD_SIZE).rev() { + for j in (0..Self::SIZE).rev() { write!( f, "{}|", @@ -152,10 +152,10 @@ impl fmt::Debug for Board { impl Board { /// Width of the board - pub const BOARD_SIZE: CoordAxis = 8; + pub const SIZE: CoordAxis = 8; /// Area of the board - pub const BOARD_AREA: CoordPair = CoordPair::area(Self::BOARD_SIZE); + pub const AREA: CoordPair = CoordPair::area(Self::SIZE); /// Create a new empty board #[allow(clippy::new_without_default)] @@ -183,7 +183,7 @@ impl Board { /// Starting position pub const fn starting_pos(mut self) -> Self { - let hf = Self::BOARD_SIZE / 2; + let hf = Self::SIZE / 2; self.place_unchecked(CoordPair::from_axes(hf - 1, hf - 1), Piece::White); self.place_unchecked(CoordPair::from_axes(hf, hf - 1), Piece::Black); @@ -194,7 +194,7 @@ impl Board { /// Provides an iterator of all possible positions on the board pub fn all_positions() -> impl Iterator { - (0..Self::BOARD_AREA.0).map(CoordPair) + (0..Self::AREA.0).map(CoordPair) } /// Returns an iterator of all possible moves a `color` can make diff --git a/src/repr/coords.rs b/src/repr/coords.rs index 6581e79..f3bf238 100644 --- a/src/repr/coords.rs +++ b/src/repr/coords.rs @@ -9,7 +9,7 @@ pub type CoordAxis = u8; /// using u8 for this results in a ~3-6% perf increase pub type CoordPairInner = u8; -const_assert!(CoordPairInner::MAX as usize >= Board::BOARD_AREA.0 as usize); +const_assert!(CoordPairInner::MAX as usize >= Board::AREA.0 as usize); #[derive(PartialEq, Eq, Copy, Clone, Hash)] pub struct CoordPair(pub CoordPairInner); @@ -17,12 +17,12 @@ pub struct CoordPair(pub CoordPairInner); impl CoordPair { /// Convert a row and column to an index in the board pub const fn from_axes(row: CoordAxis, col: CoordAxis) -> Self { - Self(row * Board::BOARD_SIZE + col) + Self(row * Board::SIZE + col) } #[allow(clippy::wrong_self_convention)] fn into_indexes(&self) -> (CoordAxis, CoordAxis) { - self.0.div_mod_floor(&Board::BOARD_SIZE) + self.0.div_mod_floor(&Board::SIZE) } pub const fn area(pos: CoordAxis) -> Self {