Cute Chess 0.1
genericmove.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 GENERICMOVE_H
20#define GENERICMOVE_H
21
22#include <QMetaType>
23#include "square.h"
24
25namespace Chess {
26
34class LIB_EXPORT GenericMove
35{
36 public:
41 const Square& targetSquare,
42 int promotion);
43
45 bool operator==(const GenericMove& other) const;
47 bool operator!=(const GenericMove& other) const;
48
50 bool isNull() const;
51
53 Square sourceSquare() const;
55 Square targetSquare() const;
57 int promotion() const;
58
60 void setSourceSquare(const Square& square);
62 void setTargetSquare(const Square& square);
64 void setPromotion(int pieceType);
65
66 private:
67 Square m_sourceSquare;
68 Square m_targetSquare;
69 int m_promotion;
70};
71
72} // namespace Chess
73
74Q_DECLARE_METATYPE(Chess::GenericMove)
75
76#endif // GENERICMOVE_H
A chess move independent of chess variant or opening book format.
Definition genericmove.h:35
void setSourceSquare(const Square &square)
Definition genericmove.cpp:76
Square sourceSquare() const
Definition genericmove.cpp:61
bool isNull() const
Definition genericmove.cpp:55
bool operator==(const GenericMove &other) const
Definition genericmove.cpp:37
void setTargetSquare(const Square &square)
Definition genericmove.cpp:81
int promotion() const
Definition genericmove.cpp:71
GenericMove()
Definition genericmove.cpp:23
Square targetSquare() const
Definition genericmove.cpp:66
bool operator!=(const GenericMove &other) const
Definition genericmove.cpp:46
void setPromotion(int pieceType)
Definition genericmove.cpp:86
A generic chess square type consisting of a file and a rank.
Definition square.h:34