5 int row_org, col_org, row_dest, col_dest;
12 if (abs(row_org - row_dest) == abs(col_org - col_dest))
15 int direction_row = (row_dest - row_org) > 0 ? 1 : -1;
16 int direction_col = (col_dest - col_org) > 0 ? 1 : -1;
17 for (
int row = row_org + direction_row, col = col_org + direction_col;
18 row != row_dest && col != col_dest;
19 row += direction_row, col += direction_col)
Piece * get_piece(Square pos) const
Récupère une pièce se trouvant à la position donnée.
bool est_menace(Square org, Square dest) const override
Vérifie si la pièce est une menace pour l'adversaire.
bool est_mouvement_legal(Square org, Square dest) const override
Vérifie si un mouvement de la case origine à la case destination est valide.
Classe décrivant une pièce.
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.
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.