1#ifndef PIECES_PIECE_HPP
2#define PIECES_PIECE_HPP
18 std::string canon_name;
31 bool has_moved{
false};
56 this->is_active = is_active;
66 virtual std::string
get_name()
const {
return name; }
92 std::string
canonical(
bool show_color =
true,
bool show_letter =
true)
const;
Représente l'échiquier du jeu d'échec.
Classe décrivant une pièce.
void set_pos(const Square pos)
Définit la position de la pièce.
bool get_is_active() const
Vérifie si la pièce a été mangée ou non.
virtual std::string get_name() const
Square get_pos() const
Récupère la position actuelle de la pièce.
virtual ~Piece()
Destructeur virtuel.
Piece(std::string name, std::string canon_name, Color color, int id, Square start_pos, Echiquier *echiquier)
Constructeur de la pièce.
bool operator==(const Piece &other) const
Vérifie si une pièce est égale à une autre.
Echiquier * echiquier
Echiquier possédant la pièce.
bool get_has_moved() const
Vérifie si la pièce a déjà bougée ou non.
virtual bool est_mouvement_legal(Square origine, Square destination) const
Vérifie si un mouvement de la case origine à la case destination est valide.
virtual void move_event(Square from)
Fonction appelée quand une pièce bouge.
virtual bool est_menace(Square origine, Square destination) const
Vérifie si la pièce est une menace pour l'adversaire.
void set_has_moved(bool has_moved)
Définit si la pièce a déjà bougée ou non.
void set_is_active(bool is_active)
Définit si la pièce est mangée ou non.
std::string canonical(bool show_color=true, bool show_letter=true) const
Décrit une case de l'échiquier.