|
@@ -138,7 +138,8 @@ impl SimpleMove {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
-pub fn generate_moves(game: &Game, side: Side, moves: &mut Vec<Move>) {
|
|
|
|
|
|
+pub fn generate_moves(game: &Game, side: Side) -> Vec<Move> {
|
|
|
|
+
|
|
let mut moves: Vec<Move> = Vec::with_capacity(128);
|
|
let mut moves: Vec<Move> = Vec::with_capacity(128);
|
|
generate_pawn_pushes(game, side, &mut moves);
|
|
generate_pawn_pushes(game, side, &mut moves);
|
|
generate_pawn_doublepushes(game, side, &mut moves);
|
|
generate_pawn_doublepushes(game, side, &mut moves);
|
|
@@ -151,6 +152,7 @@ pub fn generate_moves(game: &Game, side: Side, moves: &mut Vec<Move>) {
|
|
generate_queen_moves(game, side, &mut moves, false);
|
|
generate_queen_moves(game, side, &mut moves, false);
|
|
generate_king_moves(game, side, &mut moves, false);
|
|
generate_king_moves(game, side, &mut moves, false);
|
|
generate_castling_moves(game, side, &mut moves);
|
|
generate_castling_moves(game, side, &mut moves);
|
|
|
|
+ return moves;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -172,8 +174,7 @@ pub fn generate_possattacking_moves(game: &Game, side: Side) -> Vec<Move> {
|
|
|
|
|
|
|
|
|
|
pub fn generate_legal_moves(game: &Game, side: Side) -> Vec<Move> {
|
|
pub fn generate_legal_moves(game: &Game, side: Side) -> Vec<Move> {
|
|
- let mut moves = Vec::new();
|
|
|
|
- generate_moves(game, side, &mut moves);
|
|
|
|
|
|
+ let moves = generate_moves(game, side);
|
|
|
|
|
|
moves.into_iter().filter(|mov| {
|
|
moves.into_iter().filter(|mov| {
|
|
let tryout = super::search::apply_move(game, *mov);
|
|
let tryout = super::search::apply_move(game, *mov);
|