Jeu d'échec
 
Loading...
Searching...
No Matches
piece.cpp
Go to the documentation of this file.
1#include "pieces/piece.hpp"
2
3#include <utility>
4#include "echiquier.hpp"
5
7 int row_dest, col_dest;
8 dest.get_row_col(row_dest, col_dest);
9
10 // Cas où on dépasse l'échiquier
11 if(row_dest < 0 || row_dest > 7 || col_dest < 0 || col_dest > 7) return false;
12 // Cas où une pièce de la même couleur est présente
13 Piece* piece = echiquier->get_piece(dest);
14 if(piece != nullptr && piece->get_color() == this->color) return false;
15 return true;
16}
17
18bool Piece::est_menace(Square org, Square dest) const {
19 return false;
20}
21
22Piece::~Piece() = default;
23
24bool Piece::operator==(const Piece &other) const {
25 return id == other.id && color == other.color;
26}
27
28Piece::Piece(std::string name,
29 std::string canon_name,
30 Color color,
31 int id,
32 Square start_pos,
33 Echiquier* const echiquier) : name(std::move(name)), canon_name(std::move(canon_name)), color(color), id(id), pos(start_pos), echiquier(echiquier) {}
34
35std::string Piece::canonical(bool show_color, bool show_letter) const
36{
37 std::string output;
38 output += show_color ? (color ? "b":"w") : "";
39 output += show_letter ? canon_name : "";
40 return output;
41}
Représente l'échiquier du jeu d'échec.
Definition echiquier.hpp:14
Piece * get_piece(Square pos) const
Récupère une pièce se trouvant à la position donnée.
Classe décrivant une pièce.
Definition piece.hpp:12
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
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 bool est_menace(Square origine, Square destination) const
Vérifie si la pièce est une menace pour l'adversaire.
Definition piece.cpp:18
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
void get_row_col(int &row, int &col) const
Récupère la ligne et la colonne décrite par l'objet.
Definition square.hpp:15
Color
Liste des équipes.
Definition enums.hpp:5