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;
124 virtual bool hasCastling()
const;
130 virtual bool pawnHasDoubleStep()
const;
136 virtual bool hasEnPassantCaptures()
const;
144 virtual bool variantHasChanneling(
Side side,
int square)
const;
153 virtual void addPromotions(
int sourceSquare,
157 int kingSquare(
Side side)
const;
159 int enpassantSquare()
const;
164 virtual bool parseCastlingRights(
QChar c);
180 void removeCastlingRights(
int square);
184 void removeCastlingRights(
Side side);
189 virtual int castlingFile(
CastlingSide castlingSide)
const;
194 virtual bool inCheck(
Side side,
int square = 0)
const;
206 virtual void vInitialize();
208 virtual bool vSetFenString(
const QStringList& fen);
211 virtual Move moveFromLanString(
const QString& str);
212 virtual Move moveFromSanString(
const QString& str);
213 virtual void vMakeMove(
const Move& move,
215 virtual void vUndoMove(
const Move& move);
219 virtual bool vIsLegalMove(
const Move& move);
220 virtual bool isLegalPosition();
221 virtual int captureType(
const Move& move)
const;
224 struct CastlingRights
228 int rookSquare[2][2];
237 CastlingRights castlingRights;
238 CastlingSide castlingSide;
239 int reversibleMoveCount;
243 void generatePawnMoves(
int sourceSquare,
246 bool canCastle(CastlingSide castlingSide)
const;
247 QString castlingRightsString(FenNotation notation)
const;
248 CastlingSide castlingSide(
const Move& move)
const;
249 void setEnpassantSquare(
int square,
251 void setCastlingSquare(Side side,
256 inline int pawnPushOffset(
const PawnStep& ps,
262 int m_enpassantSquare;
263 int m_enpassantTarget;
265 int m_reversibleMoveCount;
266 bool m_kingCanCapture;
268 bool m_pawnHasDoubleStep;
269 bool m_hasEnPassantCaptures;
270 bool m_pawnAmbiguous;
271 bool m_multiDigitNotation;
273 CastlingRights m_castlingRights;
274 int m_castleTarget[2][2];
275 const WesternZobrist* m_zobrist;
Details of a board transition caused by a move.
Definition: boardtransition.h:41
An internal chessboard class.
Definition: board.h:58
FenNotation
Definition: board.h:94
A small and efficient chessmove class.
Definition: move.h:43
A chess piece.
Definition: piece.h:41
The result of a chess game.
Definition: result.h:35
The side or color of a chess player.
Definition: side.h:36
A board for western chess variants.
Definition: westernboard.h:41
StepType
Definition: westernboard.h:81
QVarLengthArray< PawnStep, 8 > m_pawnSteps
Definition: westernboard.h:98
WesternPieceType
Definition: westernboard.h:45
@ Bishop
Bishop.
Definition: westernboard.h:48
@ Rook
Rook.
Definition: westernboard.h:49
@ Queen
Queen.
Definition: westernboard.h:50
@ Knight
Knight.
Definition: westernboard.h:47
CastlingSide
Definition: westernboard.h:66
@ QueenSide
Queen side (O-O-O)
Definition: westernboard.h:67
@ KingSide
King side (O-O)
Definition: westernboard.h:68
Zobrist keys for Western chess variants.
Definition: westernzobrist.h:29
Definition: westernboard.h:88