|
Cute Chess
0.1
|
A board for Courier Chess. More...
#include <courierboard.h>
Public Member Functions | |
| virtual Board * | copy () const |
| CourierBoard () | |
| virtual QString | defaultFenString () const |
| virtual QString | variant () const |
| virtual int | width () const |
Public Member Functions inherited from Chess::ShatranjBoard | |
| virtual Result | result () |
| ShatranjBoard () | |
Public Member Functions inherited from Chess::WesternBoard | |
| virtual int | height () const |
| virtual int | reversibleMoveCount () const |
| WesternBoard (WesternZobrist *zobrist) | |
Public Member Functions inherited from Chess::Board | |
| Board (Zobrist *zobrist) | |
| virtual CoordinateSystem | coordinateSystem () const |
| QString | fenString (FenNotation notation=XFen) const |
| GenericMove | genericMove (const Move &move) const |
| void | initialize () |
| bool | isLegalMove (const Move &move) |
| virtual bool | isRandomVariant () const |
| bool | isRepetition (const Move &move) |
| bool | isValidSquare (const Square &square) const |
| quint64 | key () const |
| QVector< Move > | legalMoves () |
| void | makeMove (const Move &move, BoardTransition *transition=nullptr) |
| Move | moveFromGenericMove (const GenericMove &move) const |
| Move | moveFromString (const QString &str) |
| QString | moveString (const Move &move, MoveNotation notation) |
| Piece | pieceAt (const Square &square) const |
| Piece | pieceFromSymbol (const QString &pieceSymbol) const |
| QStringList | pieceList (Side side) const |
| QString | pieceString (int pieceType) const |
| QString | pieceSymbol (Piece piece) const |
| int | plyCount () const |
| int | repeatCount () const |
| QString | representation (Piece piece) const |
| int | reserveCount (Piece piece) const |
| virtual QList< Piece > | reservePieceTypes () const |
| void | reset () |
| bool | setFenString (const QString &fen) |
| Side | sideToMove () const |
| QString | startingFenString () const |
| Side | startingSide () const |
| virtual Result | tablebaseResult (unsigned int *dtm=nullptr) const |
| void | undoMove () |
| virtual Side | upperCaseSide () const |
| virtual bool | variantHasDrops () const |
| virtual bool | variantHasOptionalPromotions () const |
| virtual bool | variantHasWallSquares () const |
| virtual | ~Board () |
Protected Types | |
| enum | CourierPieceType { Courier = King + 1, Mann, Schleich } |
Protected Types inherited from Chess::ShatranjBoard | |
| enum | ShatranjPieceType { Ferz = Queen, Alfil = Bishop } |
Protected Types inherited from Chess::WesternBoard | |
| enum | CastlingSide { QueenSide, KingSide, NoCastlingSide } |
| enum | StepType { NoStep = 0, FreeStep = 1, CaptureStep = 2 } |
Protected Member Functions | |
| virtual void | generateMovesForPiece (QVarLengthArray< Move > &moves, int pieceType, int square) const |
| virtual bool | inCheck (Side side, int square=0) const |
| virtual void | vInitialize () |
Protected Member Functions inherited from Chess::ShatranjBoard | |
| virtual void | addPromotions (int sourceSquare, int targetSquare, QVarLengthArray< Move > &moves) const |
| virtual bool | canBareOpponentKing () |
| virtual bool | hasCastling () const |
| virtual bool | pawnHasDoubleStep () const |
Protected Member Functions inherited from Chess::WesternBoard | |
| virtual int | captureType (const Move &move) const |
| virtual int | castlingFile (CastlingSide castlingSide) const |
| int | enpassantSquare () const |
| bool | hasCastlingRight (Side side, CastlingSide castlingSide) const |
| virtual bool | hasEnPassantCaptures () const |
| virtual bool | isLegalPosition () |
| virtual bool | kingCanCapture () const |
| virtual bool | kingsCountAssertion (int whiteKings, int blackKings) const |
| int | kingSquare (Side side) const |
| virtual QString | lanMoveString (const Move &move) |
| virtual Move | moveFromLanString (const QString &str) |
| virtual Move | moveFromSanString (const QString &str) |
| virtual bool | parseCastlingRights (QChar c) |
| int | pawnAmbiguity (StepType type=FreeStep) const |
| void | removeCastlingRights (int square) |
| void | removeCastlingRights (Side side) |
| virtual QString | sanMoveString (const Move &move) |
| virtual bool | variantHasChanneling (Side side, int square) const |
| virtual QString | vFenIncludeString (FenNotation notation) const |
| virtual QString | vFenString (FenNotation notation) const |
| virtual bool | vIsLegalMove (const Move &move) |
| virtual void | vMakeMove (const Move &move, BoardTransition *transition) |
| virtual bool | vSetFenString (const QStringList &fen) |
| virtual void | vUndoMove (const Move &move) |
Protected Member Functions inherited from Chess::Board | |
| void | addToReserve (const Piece &piece, int count=1) |
| int | arraySize () const |
| bool | canMove () |
| Square | chessSquare (int index) const |
| Square | chessSquare (const QString &str) const |
| void | generateDropMoves (QVarLengthArray< Move > &moves, int pieceType) const |
| void | generateHoppingMoves (int sourceSquare, const QVarLengthArray< int > &offsets, QVarLengthArray< Move > &moves) const |
| void | generateMoves (QVarLengthArray< Move > &moves, int pieceType=Piece::NoPiece) const |
| void | generateSlidingMoves (int sourceSquare, const QVarLengthArray< int > &offsets, QVarLengthArray< Move > &moves) const |
| const Move & | lastMove () const |
| virtual int | maxPieceSymbolLength () const |
| bool | moveExists (const Move &move) const |
| Piece | pieceAt (int square) const |
| bool | pieceHasMovement (int pieceType, unsigned movement) const |
| void | removeFromReserve (const Piece &piece) |
| virtual int | reserveType (int pieceType) const |
| void | setPieceType (int type, const QString &name, const QString &symbol, unsigned movement=0, const QString &gsymbol=QString()) |
| void | setSquare (int square, Piece piece) |
| int | squareIndex (const Square &square) const |
| int | squareIndex (const QString &str) const |
| QString | squareString (int index) const |
| QString | squareString (const Square &square) const |
| void | xorKey (quint64 key) |
Static Protected Attributes | |
| static const unsigned | WazirMovement = 64 |
Static Protected Attributes inherited from Chess::ShatranjBoard | |
| static const unsigned | AlfilMovement = 32 |
| static const unsigned | FerzMovement = 16 |
Static Protected Attributes inherited from Chess::WesternBoard | |
| static const unsigned | BishopMovement = 4 |
| static const unsigned | KnightMovement = 2 |
| static const unsigned | RookMovement = 8 |
Additional Inherited Members | |
Public Types inherited from Chess::WesternBoard | |
| enum | WesternPieceType { Pawn = 1, Knight, Bishop, Rook, Queen, King } |
Public Types inherited from Chess::Board | |
| enum | CoordinateSystem { NormalCoordinates, InvertedCoordinates } |
| enum | FenNotation { XFen, ShredderFen } |
| enum | MoveNotation { StandardAlgebraic, LongAlgebraic } |
Protected Attributes inherited from Chess::WesternBoard | |
| QVarLengthArray< PawnStep, 8 > | m_pawnSteps |
A board for Courier Chess.
Courier Chess is a 12x8 board variant that has been popular in medieval Europe, especially in the countries of the Holy Roman Empire (esp. Germany, Netherlands) from the 12th to the 18th century alongside Shatranj and then Chess (influencing the transformation from the former to the latter).
The Queen and the Bishop in Courier Chess have the old Shatranj movements of the Ferz (Counselor, one square diagonally) and the Alfil (War Elephant, leaps two squares diagonally). King, Rook, and Knight have normal moves. There are additional pieces: Every side has one Mann who moves like a King, and one Schleich with Wazir movement (one square forward, backward, left or right). Every side has two Currier or Courier pieces with modern Bishop movement. Courier Chess has no Pawn double step option and no castling. A Pawn can only promote to Queen.
The effective starting position has the white Queen and Rook Pawns on ranks 4 (introducing ceremonial double steps from rank 2) and the Queen moves to g4 from g2. The black pieces do mirrorwise.
A side wins if their opponent cannot make a legal move (mate or stalemate), or has no pieces left besides their "bare" King. However, a bare King is given one chance to get level by the next move: Two bare kings is a draw.
|
protected |
| Chess::CourierBoard::CourierBoard | ( | ) |
Creates a new CourierBoard object.
|
virtual |
Creates and returns a deep copy of this board.
Reimplemented from Chess::ShatranjBoard.
|
virtual |
Returns the variant's default starting FEN string.
Reimplemented from Chess::ShatranjBoard.
|
protectedvirtual |
Generates pseudo-legal moves for a piece of pieceType at square square.
Reimplemented from Chess::ShatranjBoard.
|
protectedvirtual |
Returns true if side is under attack at square. If square is 0, then the king square is used.
Reimplemented from Chess::ShatranjBoard.
|
virtual |
Returns the name of the chess variant.
Reimplemented from Chess::ShatranjBoard.
|
protectedvirtual |
Initializes the variant.
This function is called by initialize(). Subclasses shouldn't generally call it by themselves.
Reimplemented from Chess::ShatranjBoard.
|
virtual |
Returns the width of the board in squares.
Reimplemented from Chess::WesternBoard.
|
staticprotected |
Movement mask for Wazir moves. (Schleich)
1.8.11