Cute Chess 0.1
twokingseachboard.h
1/*
2 This file is part of Cute Chess.
3 Copyright (C) 2008-2018 Cute Chess authors
4
5 Cute Chess is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
9
10 Cute Chess is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with Cute Chess. If not, see <http://www.gnu.org/licenses/>.
17*/
18
19#ifndef TWOKINGSEACHBOARD_H
20#define TWOKINGSEACHBOARD_H
21
22#include "westernboard.h"
23
24namespace Chess {
25
41class LIB_EXPORT TwoKingsEachBoard : public WesternBoard
42{
43 public:
46
47 // Inherited from WesternBoard
48 virtual Board* copy() const;
49 virtual QString variant() const;
50 virtual QString defaultFenString() const;
51 virtual Result result();
52 protected:
53 virtual void vInitialize();
54 virtual bool kingsCountAssertion(int whiteKings,
55 int blackKings) const;
56 virtual bool inCheck(Side side, int square = 0) const;
58 int pieceType,
59 int square) const;
60 virtual Move moveFromLanString(const QString& str);
61 virtual Move moveFromSanString(const QString& str);
62
70 virtual bool isSymmetrical() const;
74 virtual int royalKingSquare(Side side) const;
75 private:
76 bool m_symmetrical;
77 const int m_castlingSourceFile;
78};
79
80
81
94{
95 public:
98
99 // Inherited from TwoKingsEachBoard
100 virtual Board* copy() const;
101 virtual QString variant() const;
102 virtual QString defaultFenString() const;
103 virtual bool isSymmetrical() const;
104};
105
106} // namespace Chess
107
108#endif // TWOKINGSEACHBOARD_H
An internal chessboard class.
Definition board.h:58
A small and efficient chessmove class.
Definition move.h:43
The result of a chess game.
Definition result.h:35
The side or color of a chess player.
Definition side.h:36
virtual bool isSymmetrical() const
Definition twokingseachboard.cpp:57
virtual bool kingsCountAssertion(int whiteKings, int blackKings) const
Definition twokingseachboard.cpp:52
virtual Move moveFromLanString(const QString &str)
Definition twokingseachboard.cpp:140
virtual int royalKingSquare(Side side) const
Definition twokingseachboard.cpp:62
virtual QString defaultFenString() const
Definition twokingseachboard.cpp:41
virtual Result result()
Definition twokingseachboard.cpp:181
TwoKingsEachBoard()
Definition twokingseachboard.cpp:24
virtual Board * copy() const
Definition twokingseachboard.cpp:31
virtual void vInitialize()
Definition twokingseachboard.cpp:46
virtual bool inCheck(Side side, int square=0) const
Definition twokingseachboard.cpp:84
virtual QString variant() const
Definition twokingseachboard.cpp:36
virtual Move moveFromSanString(const QString &str)
Definition twokingseachboard.cpp:165
virtual void generateMovesForPiece(QVarLengthArray< Move > &moves, int pieceType, int square) const
Definition twokingseachboard.cpp:92
virtual Board * copy() const
Definition twokingseachboard.cpp:261
virtual QString variant() const
Definition twokingseachboard.cpp:266
virtual QString defaultFenString() const
Definition twokingseachboard.cpp:276
virtual bool isSymmetrical() const
Definition twokingseachboard.cpp:271
TwoKingsSymmetricalBoard()
Definition twokingseachboard.cpp:256
WesternBoard(WesternZobrist *zobrist)
Definition westernboard.cpp:26