From 3341b1b4114052fe6a3ca89d03706abc6feb4dd2 Mon Sep 17 00:00:00 2001 From: Simon Gardling Date: Tue, 4 Mar 2025 14:13:37 -0500 Subject: [PATCH] create BitBoard::DIRECTIONS --- src/repr/bitboard.rs | 12 ++++++++++++ src/repr/board.rs | 14 +------------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/repr/bitboard.rs b/src/repr/bitboard.rs index 0358e29..8ff2b63 100644 --- a/src/repr/bitboard.rs +++ b/src/repr/bitboard.rs @@ -79,6 +79,18 @@ impl BitBoard { self.south().west() } + /// All direction methods + pub const DIRECTIONS: [fn(&Self) -> Self; 8] = [ + BitBoard::east, + BitBoard::west, + BitBoard::north, + BitBoard::south, + BitBoard::northeast, + BitBoard::northwest, + BitBoard::southeast, + BitBoard::southwest, + ]; + // Mask for a specific column (e.g., col_mask(7) = 0x8080808080808080) const fn col_mask(col: CoordAxis) -> Self { let mut mask = 0; diff --git a/src/repr/board.rs b/src/repr/board.rs index 9735980..d3fba1a 100644 --- a/src/repr/board.rs +++ b/src/repr/board.rs @@ -277,19 +277,7 @@ impl Board { let mut flip_mask = BitBoard::new(); let seed = BitBoard::from_coord(coords); - // Directions to check: east, west, north, south, and diagonals - let directions = [ - BitBoard::east, - BitBoard::west, - BitBoard::north, - BitBoard::south, - BitBoard::northeast, - BitBoard::northwest, - BitBoard::southeast, - BitBoard::southwest, - ]; - - for dir in directions { + for dir in BitBoard::DIRECTIONS { let mut current = seed; let mut temp_flips = BitBoard::new();