implemented move generation method for knight capture moves
This commit is contained in:
@@ -33,4 +33,23 @@ impl Board {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
fn add_knight_captures(&self, buffer: &mut MoveBuffer, move_mask: u64) {
|
||||||
|
let offset = 6 * self.side_to_move as usize;
|
||||||
|
let mut knights: u64 = self.bitboards[1 + offset];
|
||||||
|
let opponents = self.occupancy[1 - self.side_to_move as usize];
|
||||||
|
while knights != 0 {
|
||||||
|
let next_sq: u32 = pop_lsb(&mut knights);
|
||||||
|
let mut attacks: u64 = self.get_pseudo_knight_moves(next_sq) & opponents & move_mask;
|
||||||
|
attacks = self.get_pin_masked_moves(attacks, next_sq);
|
||||||
|
|
||||||
|
while attacks != 0 {
|
||||||
|
let to_sq = pop_lsb(&mut attacks);
|
||||||
|
buffer.add(BitMove::capture(
|
||||||
|
next_sq as u8,
|
||||||
|
to_sq as u8,
|
||||||
|
None
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user