18 #ifndef WESTERNBOARD_H 19 #define WESTERNBOARD_H 58 virtual int width()
const;
59 virtual int height()
const;
61 virtual int reversibleMoveCount()
const;
73 static const unsigned KnightMovement = 2;
75 static const unsigned BishopMovement = 4;
77 static const unsigned RookMovement = 8;
103 int pawnAmbiguity(
StepType type = FreeStep)
const;
111 virtual bool kingsCountAssertion(
int whiteKings,
112 int blackKings)
const;
118 virtual bool kingCanCapture()
const;
127 virtual void addPromotions(
int sourceSquare,
131 int kingSquare(
Side side)
const;
133 int enpassantSquare()
const;
149 void removeCastlingRights(
int square);
154 virtual int castlingFile(
CastlingSide castlingSide)
const;
159 virtual bool inCheck(
Side side,
int square = 0)
const;
171 virtual void vInitialize();
173 virtual bool vSetFenString(
const QStringList& fen);
176 virtual Move moveFromLanString(
const QString& str);
177 virtual Move moveFromSanString(
const QString& str);
178 virtual void vMakeMove(
const Move& move,
180 virtual void vUndoMove(
const Move& move);
184 virtual bool vIsLegalMove(
const Move& move);
185 virtual bool isLegalPosition();
186 virtual int captureType(
const Move& move)
const;
189 struct CastlingRights
193 int rookSquare[2][2];
202 CastlingRights castlingRights;
203 CastlingSide castlingSide;
204 int reversibleMoveCount;
208 void generatePawnMoves(
int sourceSquare,
211 bool canCastle(CastlingSide castlingSide)
const;
212 QString castlingRightsString(FenNotation notation)
const;
213 bool parseCastlingRights(
QChar c);
214 CastlingSide castlingSide(
const Move& move)
const;
215 void setEnpassantSquare(
int square,
217 void setCastlingSquare(Side side,
222 inline int pawnPushOffset(
const PawnStep& ps,
228 int m_enpassantSquare;
229 int m_enpassantTarget;
230 int m_reversibleMoveCount;
231 bool m_kingCanCapture;
232 bool m_pawnAmbiguous;
234 CastlingRights m_castlingRights;
235 int m_castleTarget[2][2];
236 const WesternZobrist* m_zobrist;
245 #endif // WESTERNBOARD_H Knight.
Definition: westernboard.h:47
WesternPieceType
Definition: westernboard.h:44
FenNotation
Definition: board.h:92
Bishop.
Definition: westernboard.h:48
An internal chessboard class.
Definition: board.h:56
StepType
Definition: westernboard.h:80
A board for western chess variants.
Definition: westernboard.h:40
Definition: westernboard.h:88
Queen side (O-O-O)
Definition: westernboard.h:67
Definition: boardscene.h:28
QVarLengthArray< PawnStep, 8 > m_pawnSteps
Definition: westernboard.h:98
The side or color of a chess player.
Definition: side.h:34
King side (O-O)
Definition: westernboard.h:68
A chess piece.
Definition: piece.h:39
The result of a chess game.
Definition: result.h:33
CastlingSide
Definition: westernboard.h:65
Details of a board transition caused by a move.
Definition: boardtransition.h:39
A small and efficient chessmove class.
Definition: move.h:41
Queen.
Definition: westernboard.h:50
Rook.
Definition: westernboard.h:49
Zobrist keys for Western chess variants.
Definition: westernzobrist.h:27