[board] Add remove_piece_at() method to BitBoard
This commit is contained in:
parent
ed9a919db6
commit
aa7e901241
1 changed files with 17 additions and 2 deletions
|
@ -19,6 +19,10 @@ impl BitBoard {
|
||||||
self.0 |= 1 << sq.index
|
self.0 |= 1 << sq.index
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn remove_piece_at(&mut self, sq: &Square) {
|
||||||
|
self.0 &= !(1 << sq.index)
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(target_arch = "arm")]
|
#[cfg(target_arch = "arm")]
|
||||||
fn _arm_count_leading_zeros(&self) -> u8 {
|
fn _arm_count_leading_zeros(&self) -> u8 {
|
||||||
let mut number_of_leading_zeros: u8 = 0;
|
let mut number_of_leading_zeros: u8 = 0;
|
||||||
|
@ -58,9 +62,20 @@ mod tests {
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn place_piece_at() {
|
fn place_piece_at() {
|
||||||
|
let sq = Square::from_index(34).expect("Invalid square index");
|
||||||
|
|
||||||
let mut bb = BitBoard(0b1001100);
|
let mut bb = BitBoard(0b1001100);
|
||||||
bb.place_piece_at(&Square::from_index(34).expect("Invalid square index"));
|
bb.place_piece_at(&sq);
|
||||||
assert!(bb.has_piece_at(&Square::from_index(34).expect("Invalid square index")));
|
assert!(bb.has_piece_at(&sq));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn remove_piece_at() {
|
||||||
|
let sq = Square::from_index(2).expect("Invalid square index");
|
||||||
|
|
||||||
|
let mut bb = BitBoard(0b1001100);
|
||||||
|
bb.remove_piece_at(&sq);
|
||||||
|
assert!(!bb.has_piece_at(&sq));
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(target_arch = "arm")]
|
#[cfg(target_arch = "arm")]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue