-
Notifications
You must be signed in to change notification settings - Fork 2
/
figure.h
80 lines (70 loc) · 1.81 KB
/
figure.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#ifndef FIGURE_H
#define FIGURE_H
#include <string>
class Figure {
private:
int price;
std::string name;
bool white;
public:
Figure(int _price = 0,
const std::string _name = "",
bool _isWhite = true);
virtual ~Figure() {};
bool isWhite();
int getPrice();
const std::string getName();
virtual bool canMove(char rowFrom,
char laneFrom,
char rowTo,
char laneTo) = 0;
};
class Pawn: public Figure {
public:
Pawn(bool _isWhite);
virtual bool canMove(char rowFrom,
char laneFrom,
char rowTo,
char laneTo);
};
class Rook: public Figure {
public:
Rook(bool _isWhite);
virtual bool canMove(char rowFrom,
char laneFrom,
char rowTo,
char laneTo);
};
class Knight: public Figure {
public:
Knight(bool _isWhite);
virtual bool canMove(char rowFrom,
char laneFrom,
char rowTo,
char laneTo);
};
class Bishop: public Figure {
public:
Bishop(bool _isWhite);
virtual bool canMove(char rowFrom,
char laneFrom,
char rowTo,
char laneTo);
};
class Queen: public Figure {
public:
Queen(bool _isWhite);
virtual bool canMove(char rowFrom,
char laneFrom,
char rowTo,
char laneTo);
};
class King: public Figure {
public:
King(bool _isWhite);
virtual bool canMove(char rowFrom,
char laneFrom,
char rowTo,
char laneTo);
};
#endif // FIGURE_H