7 int row_org, col_org, row_dest, col_dest;
13 if (row_org == row_dest)
16 int direction = (col_dest - col_org) > 0 ? 1 : -1;
17 for (
int col = col_org + direction; col != col_dest; col += direction)
25 else if (col_org == col_dest)
28 int direction = (row_dest - row_org) > 0 ? 1 : -1;
29 for (
int row = row_org + direction; row != row_dest; row += direction)
37 else if (abs(row_org - row_dest) == abs(col_org - col_dest))
41 int directionRow = (row_dest - row_org) > 0 ? 1 : -1;
42 int directionCol = (col_dest - col_org) > 0 ? 1 : -1;
43 for (
int row = row_org + directionRow, col = col_org + directionCol;
44 row != row_dest && col != col_dest;
45 row += directionRow, col += directionCol)
Piece * get_piece(Square pos) const
Récupère une pièce se trouvant à la position donnée.
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.
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.
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.