Jeu d'échec
 
Loading...
Searching...
No Matches
cavalier.cpp
Go to the documentation of this file.
1#include "pieces/cavalier.hpp"
2
4 int row_org, col_org, row_dest, col_dest;
5 dest.get_row_col(row_dest, col_dest);
6 org.get_row_col(row_org, col_org);
7
8 // Cas de base
9 if(!Piece::est_mouvement_legal(org, dest)) return false;
10 else{
11 // Traitement des 8 cas de déplacement en L du cavalier
12 if (abs(row_org - row_dest) == 2 && abs(col_org - col_dest) == 1) return true;
13 if (abs(row_org - row_dest) == 1 && abs(col_org - col_dest) == 2) return true;
14 return false;
15 }
16}
17
18bool Cavalier::est_menace(Square org, Square dest) const {
19 return est_mouvement_legal(org, dest);
20}
bool est_menace(Square org, Square dest) const override
Vérifie si la pièce est une menace pour l'adversaire.
Definition cavalier.cpp:18
bool est_mouvement_legal(Square org, Square dest) const override
Vérifie si un mouvement de la case origine à la case destination est valide.
Definition cavalier.cpp:3
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
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