diff --git a/cpp/src/pieces/pawn.cpp b/cpp/src/pieces/pawn.cpp index 55c3183..73059ec 100644 --- a/cpp/src/pieces/pawn.cpp +++ b/cpp/src/pieces/pawn.cpp @@ -32,14 +32,15 @@ std::vector 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)) + 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 }); + } } // -- Normal move + promotion