aboutsummaryrefslogtreecommitdiffstats
path: root/include/chess_piece.hpp
blob: 6037b893b9de8e3c0a0d3bd3e7def48aa977ac9d (plain)
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
/*
 *
 * author: Yann Herklotz
 * username: ymherklotz
 * email: ymherklotz@gmail.com
 *
 * -----------------------------------------------------------------------------
 *
 * Chess Piece class with header for all the pieces as well that inherit
 * from the Chess Piece class.
 *
 */

#ifndef YMH_CHESS_PIECE_HPP
#define YMH_CHESS_PIECE_HPP

namespace ymhChessAI {
class ChessPiece {
public:
	ChessPiece();
	ChessPiece(const ChessPiece& other) = default;
	ChessPiece(const int& x, const int& y);
	virtual ~ChessPiece() = default;

	virtual void move(const int& x, const int& y) = 0;
protected:
	int m_x, m_y;
private:
};

class King : public ChessPiece {
public:
	King();
	King(const King& other) = default;
	King(const int& x, const int& y);
	~King() = default;

	void move(const int& x, const int& y);
protected:
private:
};

class Queen : public ChessPiece {
public:
	Queen();
	Queen(const Queen& other) = default;
	Queen(const int& x, const int& y);
	~Queen() = default;

	void move(const int& x, const int& y);
protected:
private:
};

class Rook : public ChessPiece {
public:
	Rook();
	Rook(const Rook& other) = default;
	Rook(const int& x, const int& y);
	~Rook() = default;

	void move(const int& x, const int& y);
protected:
private:
};

class Bishop : public ChessPiece {
public:
	Bishop();
	Bishop(const Bishop& other) = default;
	Bishop(const int& x, const int& y);
	~Bishop() = default;

	void move(const int& x, const int& y);
protected:
private:
};

class Knight : public ChessPiece {
public:
	Knight();
	Knight(const Knight& other) = default;
	Knight(const int& x, const int& y);
	~Knight() = default;

	void move(const int& x, const int& y);
protected:
private:
};

class Pawn : public ChessPiece {
public:
	Pawn();
	Pawn(const Pawn& other) = default;
	Pawn(const int& x, const int& y);
	~Pawn() = default;

	void move(const int& x, const int& y);
protected:
private:
};
};

#endif