diff options
-rw-r--r-- | src/bitboard.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/bitboard.rs b/src/bitboard.rs index 0b62f87..a4b54e5 100644 --- a/src/bitboard.rs +++ b/src/bitboard.rs @@ -2,6 +2,7 @@ pub type Bitboard = u64; /// Print bitboard on screen in the same way squares appear in memory /// (i.e the board is actually flipped along X) +#[allow(dead_code)] pub fn print(bb: Bitboard) { for index in 0..64 { print!("{}", if bb >> index & 1 == 1 { "1" } else { "." }); @@ -34,6 +35,19 @@ pub fn bitscan(bb: Bitboard) -> u8 { pop_count(bb - 1) } +/// Aliases to board square indexes +#[allow(dead_code)] +enum Square { + A1, B1, C1, D1, E1, F1, G1, H1, + A2, B2, C2, D2, E2, F2, G2, H2, + A3, B3, C3, D3, E3, F3, G3, H3, + A4, B4, C4, D4, E4, F4, G4, H4, + A5, B5, C5, D5, E5, F5, G5, H5, + A6, B6, C6, D6, E6, F6, G6, H6, + A7, B7, C7, D7, E7, F7, G7, H7, + A8, B8, C8, D8, E8, F8, G8, H8, +} + #[cfg(test)] mod tests { use super::*; @@ -63,5 +77,12 @@ mod tests { fn test_bitscan_with_non_single_bb() { bitscan(5); } + + #[test] + fn test_square_enum() { + assert_eq!(Square::A1 as u8, 0); + assert_eq!(Square::F1 as u8, 5); + assert_eq!(Square::H8 as u8, 63); + } } |