Explorar o código

fixed movegen bug

Nicolas Winkler %!s(int64=3) %!d(string=hai) anos
pai
achega
df86b7d1ae
Modificáronse 1 ficheiros con 4 adicións e 3 borrados
  1. 4 3
      src/movegen.rs

+ 4 - 3
src/movegen.rs

@@ -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);
     generate_pawn_pushes(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_king_moves(game, side, &mut moves, false);
     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> {
-    let mut moves = Vec::new();
-    generate_moves(game, side, &mut moves);
+    let moves = generate_moves(game, side);
 
     moves.into_iter().filter(|mov| {
         let tryout = super::search::apply_move(game, *mov);