Jeu d'échec
 
Loading...
Searching...
No Matches
piece.hpp
Go to the documentation of this file.
1#ifndef PIECES_PIECE_HPP
2#define PIECES_PIECE_HPP
3
4#include <string>
5#include <iostream>
6#include "enums.hpp"
7#include "square.hpp"
8
9class Echiquier;
10
12class Piece {
13 private:
15 std::string name;
16
18 std::string canon_name;
19
21 Color color;
22
25 int id;
26
28 Square pos;
29
31 bool has_moved{false};
32
34 bool is_active{true};
35
36 protected:
39
40 public:
45 virtual bool est_mouvement_legal(Square origine, Square destination) const;
46
49 bool get_is_active() const {
50 return is_active;
51 }
52
55 void set_is_active(bool is_active) {
56 this->is_active = is_active;
57 }
58
63 virtual bool est_menace(Square origine, Square destination) const;
64
66 virtual std::string get_name() const { return name; }
67
70 virtual void move_event(Square from) {
71 has_moved = true;
72 }
73
75 Color get_color() const { return color; }
76
78 int get_id() const { return id; }
79
86 Piece(std::string name, std::string canon_name, Color color, int id, Square start_pos, Echiquier* echiquier);
87
92 std::string canonical(bool show_color = true, bool show_letter = true) const;
93
95 virtual ~Piece();
96
99 bool get_has_moved() const { return has_moved; }
100
103 void set_has_moved(bool has_moved) { this->has_moved = has_moved; }
104
107 Square get_pos() const { return pos; }
108
111 void set_pos(const Square pos) { this->pos = pos; }
112
116 bool operator== (const Piece &other) const;
117};
118
119
120#endif
Représente l'échiquier du jeu d'échec.
Definition echiquier.hpp:14
Classe décrivant une pièce.
Definition piece.hpp:12
void set_pos(const Square pos)
Définit la position de la pièce.
Definition piece.hpp:111
bool get_is_active() const
Vérifie si la pièce a été mangée ou non.
Definition piece.hpp:49
int get_id() const
Definition piece.hpp:78
virtual std::string get_name() const
Definition piece.hpp:66
Square get_pos() const
Récupère la position actuelle de la pièce.
Definition piece.hpp:107
virtual ~Piece()
Destructeur virtuel.
Color get_color() const
Definition piece.hpp:75
Piece(std::string name, std::string canon_name, Color color, int id, Square start_pos, Echiquier *echiquier)
Constructeur de la pièce.
Definition piece.cpp:28
bool operator==(const Piece &other) const
Vérifie si une pièce est égale à une autre.
Definition piece.cpp:24
Echiquier * echiquier
Echiquier possédant la pièce.
Definition piece.hpp:38
bool get_has_moved() const
Vérifie si la pièce a déjà bougée ou non.
Definition piece.hpp:99
virtual bool est_mouvement_legal(Square origine, Square destination) const
Vérifie si un mouvement de la case origine à la case destination est valide.
Definition piece.cpp:6
virtual void move_event(Square from)
Fonction appelée quand une pièce bouge.
Definition piece.hpp:70
virtual bool est_menace(Square origine, Square destination) const
Vérifie si la pièce est une menace pour l'adversaire.
Definition piece.cpp:18
void set_has_moved(bool has_moved)
Définit si la pièce a déjà bougée ou non.
Definition piece.hpp:103
void set_is_active(bool is_active)
Définit si la pièce est mangée ou non.
Definition piece.hpp:55
std::string canonical(bool show_color=true, bool show_letter=true) const
Definition piece.cpp:35
Décrit une case de l'échiquier.
Definition square.hpp:7
Color
Liste des équipes.
Definition enums.hpp:5