|
@@ -310,7 +310,7 @@ pub fn generate_legal_moves_old(game: &mut Game, side: Side) -> Vec<Move> {
|
|
|
moves.into_iter().filter(check_legality).collect::<Vec<Move>>()
|
|
|
}
|
|
|
|
|
|
-fn possibly_pinned_pieces(king: Bitboard, friends: Bitboard, diag_enemies: Bitboard, straight_enemies: Bitboard, all_enemies: Bitboard) -> [Bitboard; 8] {
|
|
|
+fn pinned_rays(king: Bitboard, friends: Bitboard, diag_enemies: Bitboard, straight_enemies: Bitboard, all_enemies: Bitboard) -> [Bitboard; 8] {
|
|
|
let check_ray = |ray_func: fn(Bitboard) -> Bitboard, diagonal: bool| -> Bitboard {
|
|
|
let mut pos = king;
|
|
|
let mut ray = 0;
|
|
@@ -360,7 +360,7 @@ pub fn generate_legal_moves(game: &mut Game, side: Side, captures_only: bool) ->
|
|
|
let straight_enemies = game.queens(!side) | game.rooks(!side);
|
|
|
let diag_enemies = game.queens(!side) | game.bishops(!side);
|
|
|
|
|
|
- let pin_rays = possibly_pinned_pieces(king, game.get_all_side(side), diag_enemies, straight_enemies, game.get_all_side(!side));
|
|
|
+ let pin_rays = pinned_rays(king, game.get_all_side(side), diag_enemies, straight_enemies, game.get_all_side(!side));
|
|
|
let possible_pins = king | pin_rays.iter().fold(0, |a, b| a | b);
|
|
|
|
|
|
let check_legality = |m: &Move| {
|