Skip to content

Commit

Permalink
Add more conditions to en passant
Browse files Browse the repository at this point in the history
  • Loading branch information
Tanbir Banipal committed Jul 26, 2022
1 parent e34902f commit 06cc42e
Showing 1 changed file with 8 additions and 12 deletions.
20 changes: 8 additions & 12 deletions pawn.cc
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,11 @@ std::vector<Position> Pawn::getAvalibleMoves(Position pos, Board* b) {
}
retpos.second = y;
retpos.first = (locationx)(x+1);
if(y+2 < 8 && b->getType(retpos).first == PieceType::Pawn && b->moved(retpos) == 1){
std::cout << "EN PASSANT";
if(y+2 < 8 && b->getType(retpos).first == PieceType::Pawn && b->moved(retpos) == 1 &&
b->getType(retpos).second != b->getType(pos).second){
ChessMove expmove = {{retpos.first, y+2}, {retpos.first, y}};
ChessMove lastmove = b->lastMove();
if(lastmove == expmove){
std::cout << " INCOMING\n";
retpos.second = y+1;
result.emplace_back(retpos);
}
Expand All @@ -57,12 +56,11 @@ std::vector<Position> Pawn::getAvalibleMoves(Position pos, Board* b) {
}
retpos.second = y;
retpos.first = (locationx)(x-1);
if(y+2 < 8 && b->getType(retpos).first == PieceType::Pawn && b->moved(retpos) == 1){
std::cout << "EN PASSANT";
if(y+2 < 8 && b->getType(retpos).first == PieceType::Pawn && b->moved(retpos) == 1 &&
b->getType(retpos).second != b->getType(pos).second){
ChessMove expmove = {{retpos.first, y+2}, {retpos.first, y}};
ChessMove lastmove = b->lastMove();
if(lastmove == expmove){
std::cout << " INCOMING\n";
retpos.second = y+1;
result.emplace_back(retpos);
}
Expand Down Expand Up @@ -93,12 +91,11 @@ std::vector<Position> Pawn::getAvalibleMoves(Position pos, Board* b) {
}
retpos.second = y;
retpos.first = (locationx)(x+1);
if(y-2 > 1 && b->getType(retpos).first == PieceType::Pawn && b->moved(retpos) == 1){
if(y-2 > 1 && b->getType(retpos).first == PieceType::Pawn && b->moved(retpos) == 1 &&
b->getType(retpos).second != b->getType(pos).second){
ChessMove expmove = {{retpos.first, y-2}, {retpos.first, y}};
ChessMove lastmove = b->lastMove();
std::cout << "EN PASSANT";
if(lastmove == expmove){
std::cout << " INCOMING\n";
retpos.second = y-1;
result.emplace_back(retpos);
}
Expand All @@ -113,12 +110,11 @@ std::vector<Position> Pawn::getAvalibleMoves(Position pos, Board* b) {
}
retpos.second = y;
retpos.first = (locationx)(x-1);
if(y-2 > 1 && b->getType(retpos).first == PieceType::Pawn && b->moved(retpos) == 1){
if(y-2 > 1 && b->getType(retpos).first == PieceType::Pawn && b->moved(retpos) == 1 &&
b->getType(retpos).second != b->getType(pos).second){
ChessMove expmove = {{retpos.first, y-2}, {retpos.first, y}};
ChessMove lastmove = b->lastMove();
std::cout << "EN PASSANT" << std::endl;
if(lastmove == expmove){
std::cout << " INCOMING\n";
retpos.second = y-1;
result.emplace_back(retpos);
}
Expand Down

0 comments on commit 06cc42e

Please sign in to comment.