mirror of
https://gitlab.com/manzerbredes/chessarbiter.git
synced 2025-04-05 17:46:26 +02:00
Debug pawns moves
This commit is contained in:
parent
975ad849d1
commit
90050da015
2 changed files with 12 additions and 5 deletions
|
@ -309,12 +309,16 @@ std::vector<std::string> ChessArbiter::ListLegalMoves(bool isBlack) {
|
|||
bool IsDstEmpty = board.IsEmpty(dst);
|
||||
|
||||
// Pawns side moves
|
||||
if ((srcp.piece == 'p' || srcp.piece == 'P') && (src[0] != dst[0])) {
|
||||
if (!IsDstEmpty) {
|
||||
Piece attacked = board.GetPieceAt(dst);
|
||||
if (srcp.isBlack != attacked.isBlack)
|
||||
if (srcp.piece == 'p' || srcp.piece == 'P') {
|
||||
if ((src[0] != dst[0])) {
|
||||
if (!IsDstEmpty) {
|
||||
Piece attacked = board.GetPieceAt(dst);
|
||||
if (srcp.isBlack != attacked.isBlack)
|
||||
moves.push_back(move);
|
||||
} else if (dst == fen.en_passant) {
|
||||
moves.push_back(move);
|
||||
} else if (dst == fen.en_passant) {
|
||||
}
|
||||
} else if (IsDstEmpty) {
|
||||
moves.push_back(move);
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -450,4 +450,7 @@ TEST_CASE("ParseSAN", "[ParseSAN]") {
|
|||
a.Setup(
|
||||
"r1bq1rk1/p4ppp/2p2n2/1pbPp3/3n4/P1NB3P/1PPP1PPN/R1BQ1RK1 b - - 0 10");
|
||||
CHECK(a.ParseSAN("exd5") == "c6d5");
|
||||
|
||||
a.Setup("rnbqkbnr/pp3ppp/4p3/2pp4/3PP3/8/PPPN1PPP/R1BQKBNR w KQkq - 0 4");
|
||||
CHECK(a.ParseSAN("exd5") == "e4d5");
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue