7 int row_dest, col_dest;
11 if(row_dest < 0 || row_dest > 7 || col_dest < 0 || col_dest > 7)
return false;
14 if(piece !=
nullptr && piece->
get_color() == this->color)
return false;
25 return id == other.id && color == other.color;
29 std::string canon_name,
33 Echiquier*
const echiquier) : name(std::move(name)), canon_name(std::move(canon_name)), color(color), id(id), pos(start_pos), echiquier(echiquier) {}
38 output += show_color ? (color ?
"b":
"w") :
"";
39 output += show_letter ? canon_name :
"";
Représente l'échiquier du jeu d'échec.
Piece * get_piece(Square pos) const
Récupère une pièce se trouvant à la position donnée.
Classe décrivant une 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.
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 bool est_menace(Square origine, Square destination) const
Vérifie si la pièce est une menace pour l'adversaire.
std::string canonical(bool show_color=true, bool show_letter=true) const
Décrit une case de l'échiquier.
void get_row_col(int &row, int &col) const
Récupère la ligne et la colonne décrite par l'objet.