Cute Chess
0.1
projects
lib
src
board
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
25
namespace
Chess {
26
34
class
LIB_EXPORT
GenericMove
35
{
36
public
:
38
GenericMove
();
40
GenericMove
(
const
Square
& sourceSquare,
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
74
Q_DECLARE_METATYPE(
Chess::GenericMove
)
75
76
#endif
// GENERICMOVE_H
Chess::GenericMove
A chess move independent of chess variant or opening book format.
Definition:
genericmove.h:35
Chess::Square
A generic chess square type consisting of a file and a rank.
Definition:
square.h:34
Generated by
1.9.4