broken pawns

master
Justin Pilon 5 years ago
parent 126a9b02e1
commit 7804775b99

@ -48,8 +48,12 @@ std::vector<Position> get_all_moves(Position pn, std::array<PieceType, 64> board
int y = pos_to_pair(pn).second;
std::vector<int> knt_dx = {-1,1,-2,2,0,-2,2,-1,1};
std::vector<int> knt_dy = {2,2,1,1,0,-1,-1,-2,-2};
std::vector<int> kg_dx = {-1,0,1,-1,0,1,-1,0,1};
std::vector<int> kg_dy = {1,1,1,0,0,0,-1,-1,-1};
std::vector<int> kg_dx = {-1,0,1,-1,0,1,-1,0,1};
std::vector<int> kg_dy = {1,1,1,0,0,0,-1,-1,-1};
std::vector<int> Bpa_dx = {0,-1,0,1,0,0};
std::vector<int> Bpa_dy = {-1,0,0,0,1,2};
std::vector<int> Wpa_dx = {0,0,-1,0,1,0};
std::vector<int> Wpa_dy = {2,1,0,0,0,-1};
switch(pt){
case PieceType::B_ROOK:
case PieceType::W_ROOK:
@ -102,6 +106,26 @@ std::vector<Position> get_all_moves(Position pn, std::array<PieceType, 64> board
}
}
break;
case PieceType::B_PAWN:
for (int j = 7; j >= 0; j--){
for (int i = 0; i < 8; i++){
for (int k = 0; k < 6; k++){
if (std::make_pair(x+Bpa_dx[k],y+Bpa_dy[k]) == std::make_pair(i,j))
pns.push_back(pair_to_pos(std::make_pair(i,j)));
}
}
}
break;
case PieceType::W_PAWN:
for (int j = 7; j >= 0; j--){
for (int i = 0; i < 8; i++){
for (int k = 0; k < 6; k++){
if (std::make_pair(x+Wpa_dx[k],y+Wpa_dy[k]) == std::make_pair(i,j))
pns.push_back(pair_to_pos(std::make_pair(i,j)));
}
}
}
break;
default:
break;
}

Loading…
Cancel
Save