implemented en passant in legal moves
This commit is contained in:
parent
84c3af2bb1
commit
4c8fdfa3b4
@ -29,6 +29,19 @@ std::vector<Move> pawn_moves(const Board& b, const Coords xy) {
|
||||
}
|
||||
}
|
||||
|
||||
// -- Capture en passant
|
||||
if (b.en_passant_target != -1) {
|
||||
Coords c = Coords::from_index(b.en_passant_target);
|
||||
int dy = my_colour == Colour::White ? -1 : 1;
|
||||
if (c.y == xy.y + dy && (c.x == xy.x - 1 || c.x == xy.x + 1))
|
||||
ret.push_back(Move{
|
||||
xy.to_index(),
|
||||
c.to_index(),
|
||||
.is_capturing = true,
|
||||
.en_passant = true
|
||||
});
|
||||
}
|
||||
|
||||
// -- Promotion
|
||||
bool is_on_starting_rank =
|
||||
my_colour == Colour::White ? xy.y == 1 : xy.y == 6;
|
||||
|
Loading…
x
Reference in New Issue
Block a user