|
@@ -32,10 +32,10 @@ std::vector<Move> ChessGame::getValidMoves(void) const
|
|
|
void ChessGame::move(Move move)
|
|
|
{
|
|
|
board.move(move);
|
|
|
- if (turn == Turn::BLACK) {
|
|
|
+ if (turn == BLACK_SIDE) {
|
|
|
moveCount++;
|
|
|
}
|
|
|
- turn = turn == Turn::WHITE ? Turn::BLACK : Turn::WHITE;
|
|
|
+ turn = turn == WHITE_SIDE ? BLACK_SIDE : WHITE_SIDE;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -62,29 +62,29 @@ void ChessGame::loadFromFen(const std::string& fenString)
|
|
|
this->board.setBoard(board);
|
|
|
this->enPassant = Index {enPassant};
|
|
|
|
|
|
- if (turn == "w"s) this->turn = Turn::WHITE;
|
|
|
- else if (turn == "b"s) this->turn = Turn::BLACK;
|
|
|
+ if (turn == "w"s) this->turn = WHITE_SIDE;
|
|
|
+ else if (turn == "b"s) this->turn = BLACK_SIDE;
|
|
|
else throw runtime_error("invalid turn "s + turn);
|
|
|
|
|
|
- canCastleQueenSideWhite = false;
|
|
|
- canCastleKingSideWhite = false;
|
|
|
- canCastleQueenSideBlack = false;
|
|
|
- canCastleKingSideBlack = false;
|
|
|
+ canCastleQueenSide[WHITE_SIDE] = false;
|
|
|
+ canCastleKingSide[WHITE_SIDE] = false;
|
|
|
+ canCastleQueenSide[BLACK_SIDE] = false;
|
|
|
+ canCastleKingSide[BLACK_SIDE] = false;
|
|
|
|
|
|
if (castling != "-")
|
|
|
for (auto character : castling) {
|
|
|
switch (character) {
|
|
|
case 'k':
|
|
|
- canCastleKingSideWhite = true;
|
|
|
+ canCastleKingSide[WHITE_SIDE] = true;
|
|
|
break;
|
|
|
case 'q':
|
|
|
- canCastleQueenSideWhite = true;
|
|
|
+ canCastleQueenSide[WHITE_SIDE] = true;
|
|
|
break;
|
|
|
case 'K':
|
|
|
- canCastleKingSideBlack = true;
|
|
|
+ canCastleKingSide[BLACK_SIDE] = true;
|
|
|
break;
|
|
|
case 'Q':
|
|
|
- canCastleQueenSideBlack = true;
|
|
|
+ canCastleQueenSide[BLACK_SIDE] = true;
|
|
|
break;
|
|
|
default:
|
|
|
throw runtime_error("invalid castling right: "s + character);
|
|
@@ -122,13 +122,13 @@ std::string ChessGame::generateFen(void) const
|
|
|
|
|
|
string board = this->board.getFenBoard();
|
|
|
|
|
|
- string turn = this->turn == Turn::WHITE ? "w"s : "b"s;
|
|
|
+ string turn = this->turn == WHITE_SIDE ? "w"s : "b"s;
|
|
|
|
|
|
string castlingRights =
|
|
|
- (canCastleKingSideBlack ? "K"s : ""s) +
|
|
|
- (canCastleQueenSideBlack ? "Q"s : ""s) +
|
|
|
- (canCastleKingSideWhite ? "k"s : ""s) +
|
|
|
- (canCastleQueenSideWhite ? "q"s : ""s);
|
|
|
+ (canCastleKingSide[BLACK_SIDE] ? "K"s : ""s) +
|
|
|
+ (canCastleQueenSide[BLACK_SIDE] ? "Q"s : ""s) +
|
|
|
+ (canCastleKingSide[WHITE_SIDE] ? "k"s : ""s) +
|
|
|
+ (canCastleQueenSide[WHITE_SIDE] ? "q"s : ""s);
|
|
|
if (castlingRights.empty())
|
|
|
castlingRights = "-"s;
|
|
|
|