|
@@ -24,10 +24,10 @@ pub struct SimpleMove {
|
|
}
|
|
}
|
|
|
|
|
|
pub enum Move {
|
|
pub enum Move {
|
|
- Default { mov: SimpleMove, piece_type: PieceType, capture: PieceType },
|
|
|
|
|
|
+ Default { mov: SimpleMove, piece_type: PieceType },
|
|
Castling { side: Side, left: bool },
|
|
Castling { side: Side, left: bool },
|
|
EnPassant { side: Side, column: u8 },
|
|
EnPassant { side: Side, column: u8 },
|
|
- Promotion { side: Side, column: u8, promote_to: PieceType, capture: PieceType },
|
|
|
|
|
|
+ Promotion { side: Side, column: u8, promote_to: PieceType },
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -80,20 +80,14 @@ fn generate_pawn_pushes(game: &Game, side: Side) -> Bitboard {
|
|
fn generate_pawn_captures(game: &Game, side: Side, move_list: &mut Vec<Move>) {
|
|
fn generate_pawn_captures(game: &Game, side: Side, move_list: &mut Vec<Move>) {
|
|
let pawns = game.pawns(side);
|
|
let pawns = game.pawns(side);
|
|
let others = game.get_all_side(!side);
|
|
let others = game.get_all_side(!side);
|
|
- let moved_pawns_left =
|
|
|
|
- match side {
|
|
|
|
- WHITE => northeast_one(pawns),
|
|
|
|
- BLACK => southeast_one(pawns)
|
|
|
|
- };
|
|
|
|
- let moved_pawns_right =
|
|
|
|
- match side {
|
|
|
|
- WHITE => northwest_one(pawns),
|
|
|
|
- BLACK => southwest_one(pawns)
|
|
|
|
- };
|
|
|
|
|
|
|
|
- let left_captures = moved_pawns_left & others;
|
|
|
|
- let right_captures = moved_pawns_right & others;
|
|
|
|
|
|
+ let pawn_iterator = BitboardIterator{ pawns };
|
|
|
|
+
|
|
|
|
+ for pawn in pawn_iterator {
|
|
|
|
+ let left_cap = match side {
|
|
|
|
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|