58 virtual int width()
const;
59 virtual int height()
const;
61 virtual int reversibleMoveCount()
const;
112 int blackKings)
const;
194 virtual bool inCheck(
Side side,
int square = 0)
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
Board(Zobrist *zobrist)
Definition board.cpp:55
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
virtual Move moveFromSanString(const QString &str)
Definition westernboard.cpp:310
virtual bool isLegalPosition()
Definition westernboard.cpp:1186
virtual void vMakeMove(const Move &move, BoardTransition *transition)
Definition westernboard.cpp:884
virtual void addPromotions(int sourceSquare, int targetSquare, QVarLengthArray< Move > &moves) const
Definition westernboard.cpp:1246
virtual bool kingsCountAssertion(int whiteKings, int blackKings) const
Definition westernboard.cpp:64
virtual void vUndoMove(const Move &move)
Definition westernboard.cpp:1024
virtual Move moveFromLanString(const QString &str)
Definition westernboard.cpp:286
virtual QString sanMoveString(const Move &move)
Definition westernboard.cpp:181
virtual QString lanMoveString(const Move &move)
Definition westernboard.cpp:168
static const unsigned BishopMovement
Definition westernboard.h:75
int kingSquare(Side side) const
Definition westernboard.cpp:1366
StepType
Definition westernboard.h:81
@ FreeStep
May move if target is empty.
Definition westernboard.h:83
@ CaptureStep
Capture opposing piece only.
Definition westernboard.h:84
@ NoStep
Cannot move here.
Definition westernboard.h:82
QVarLengthArray< PawnStep, 8 > m_pawnSteps
Definition westernboard.h:98
virtual QString vFenString(FenNotation notation) const
Definition westernboard.cpp:594
virtual bool hasCastling() const
Definition westernboard.cpp:74
virtual bool parseCastlingRights(QChar c)
Definition westernboard.cpp:622
WesternBoard(WesternZobrist *zobrist)
Definition westernboard.cpp:26
virtual bool vSetFenString(const QStringList &fen)
Definition westernboard.cpp:696
virtual void generateMovesForPiece(QVarLengthArray< Move > &moves, int pieceType, int square) const
Definition westernboard.cpp:1080
virtual bool vIsLegalMove(const Move &move)
Definition westernboard.cpp:1234
virtual bool inCheck(Side side, int square=0) const
Definition westernboard.cpp:1105
virtual void vInitialize()
Definition westernboard.cpp:94
static const unsigned KnightMovement
Definition westernboard.h:73
virtual bool hasEnPassantCaptures() const
Definition westernboard.cpp:84
bool hasCastlingRight(Side side, CastlingSide castlingSide) const
Definition westernboard.cpp:1377
int enpassantSquare() const
Definition westernboard.cpp:1372
int pawnAmbiguity(StepType type=FreeStep) const
Definition westernboard.cpp:577
virtual int captureType(const Move &move) const
Definition westernboard.cpp:148
virtual QString vFenIncludeString(FenNotation notation) const
Definition westernboard.cpp:588
WesternPieceType
Definition westernboard.h:45
@ Bishop
Bishop.
Definition westernboard.h:48
@ Rook
Rook.
Definition westernboard.h:49
@ Pawn
Pawn.
Definition westernboard.h:46
@ King
King.
Definition westernboard.h:51
@ Queen
Queen.
Definition westernboard.h:50
@ Knight
Knight.
Definition westernboard.h:47
void removeCastlingRights(int square)
Definition westernboard.cpp:857
virtual bool variantHasChanneling(Side side, int square) const
Definition westernboard.cpp:89
virtual bool kingCanCapture() const
Definition westernboard.cpp:69
virtual bool pawnHasDoubleStep() const
Definition westernboard.cpp:79
CastlingSide
Definition westernboard.h:66
@ NoCastlingSide
No castling side.
Definition westernboard.h:69
@ QueenSide
Queen side (O-O-O).
Definition westernboard.h:67
@ KingSide
King side (O-O).
Definition westernboard.h:68
static const unsigned RookMovement
Definition westernboard.h:77
virtual int castlingFile(CastlingSide castlingSide) const
Definition westernboard.cpp:878
Zobrist keys for Western chess variants.
Definition westernzobrist.h:29
Definition westernboard.h:88