diff options
| author | Adam <adammegarules1@gmail.com> | 2026-07-29 16:18:52 +0200 |
|---|---|---|
| committer | Adam <adammegarules1@gmail.com> | 2026-07-29 16:18:52 +0200 |
| commit | 1d6a6717ba088c3b89d50021f2bf6656eb564533 (patch) | |
| tree | 83c2ba1c3a89eacf63f8841ccfb93671c5b45bdf /src/board.hpp | |
| parent | 42c1050af70447e935ad1914e57ccecd9f278e7f (diff) | |
implementing castling
Diffstat (limited to 'src/board.hpp')
| -rw-r--r-- | src/board.hpp | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/board.hpp b/src/board.hpp index 4f04783..2e8cb82 100644 --- a/src/board.hpp +++ b/src/board.hpp @@ -2,7 +2,6 @@ #define SRC_BOARD_H_ #include <cstdint> -#include <string> #include <unordered_map> enum PieceType { @@ -26,7 +25,6 @@ enum GameState { struct Piece { bool color = 0; PieceType type = NONEPIECE; - bool moved = false; }; struct Position { @@ -42,7 +40,10 @@ struct TranspositionsEntry { struct Game { Piece pieces[64]; bool turn = 1; // 1 white; 0 black - std::string castle = ""; + bool whiteCastleKing = false; + bool whiteCastleQueen = false; + bool blackCastleKing = false; + bool blackCastleQueen = false; uint8_t halfMoveClock = 0; uint16_t MoveClock = 0; Position enPassant; @@ -75,13 +76,22 @@ struct UndoMove { bool oldTurn; bool oldCanEnpassant; Position oldEnPassant; - std::string oldCaslte; + + bool OldwhiteCastleKing; + bool OldwhiteCastleQueen; + bool OldblackCastleKing; + bool OldblackCastleQueen; + int oldHalfMoveClock; int oldMoveClock; uint64_t zobristKey; GameState oldState; + + // castling + bool wasCastle = false; + bool CastledSide = false; // 0 for queen side, 1 for king side }; -Piece createPiece(PieceType type, bool color, bool moved = false); +Piece createPiece(PieceType type, bool color); int PositionToIndex(Position i); UndoMove MakeMove(Move move, Game *g); |
