diff --git a/board/src/bitboard/bitboard.rs b/board/src/bitboard/bitboard.rs index f5f0e6c..f777d64 100644 --- a/board/src/bitboard/bitboard.rs +++ b/board/src/bitboard/bitboard.rs @@ -67,6 +67,11 @@ impl BitBoard { BitBoard(self.0 >> 7 & BitBoard::NOT_A_FILE) } + #[inline] + pub fn shift_south(&self, n: u8) -> BitBoard { + BitBoard(self.0 >> (8 * n)) + } + #[inline] pub fn shift_south_one(&self) -> BitBoard { BitBoard(self.0 >> 8) @@ -237,6 +242,11 @@ mod tests { BitBoard(0x0008_0000_0000).shift_north(2), BitBoard(0x0008_0000_0000_0000) ); + + assert_eq!( + BitBoard(0x0008_0000_0000).shift_south(2), + BitBoard(0x0008_0000) + ); } #[test]