Jeu d'échec
 
Loading...
Searching...
No Matches
jeu.cpp
Go to the documentation of this file.
1#include "jeu.hpp"
2#include <iostream>
3#include <pieces/roi.hpp>
4Jeu::Jeu(std::string name) : name(name) {
5}
6
8{
9 this->echiquier.setup();
10}
11
12void Jeu::print() const
13{
14 std::cout << "Partie : " << this->name << ". Au tour des " << (player ? "Noirs" : "Blancs") << std::endl;
15 this->echiquier.print_board();
16 std::cout << message << " ";
17}
18
19std::string Jeu::canonical() const
20{
21 return echiquier.canonical_position() + " " + "";
22}
23
24bool Jeu::move(Square from, Square to) {
25 Piece* piece = this->echiquier.get_piece(from);
26 if(piece != nullptr && piece->get_color() != player) {
27 this->set_message("Ce n'est pas votre tour.");
28 return false;
29 }
30 if(this->echiquier.move(from, to, player)){
31 player = (player == WHITE) ? BLACK : WHITE;
32 return true;
33 }
34 this->set_message("Mouvement invalide.");
35 return false;
36}
37
39 if (echiquier.get_is_check()) {
40 std::cout << (player == WHITE ? "Blanc " : "Noir ") << std::endl;
41 return echiquier.check_check_mate(player) ? CHECK_MATE : ON_GOING;
42 }
43
44 return echiquier.check_stalemate(player) ? STALEMATE : ON_GOING;
45
46}
47
48bool Jeu::castling(bool big) {
49 if(echiquier.castling(player, big)){
50 player = (player == WHITE) ? BLACK : WHITE;
51 return true;
52 }
53 return false;
54}
bool check_stalemate(Color player)
Vérifie si le joueur est en situation de pat.
Piece * get_piece(Square pos) const
Récupère une pièce se trouvant à la position donnée.
bool get_is_check() const
Vérifie s'il y a un échec.
Definition echiquier.hpp:79
void setup()
Place les pions et pièces à leur emplacement de départ.
bool move(Square from, Square to, Color player)
Permet d'effectuer un mouvement de pièce.
void print_board() const
Affiche l'échiquier.
bool castling(Color player, bool big)
Effectue le roque d'un joueur.
Definition echiquier.cpp:52
std::string canonical_position() const
Retourne la position canonique de l'échiquier.
bool check_check_mate(Color player)
Vérifie si le joueur est en situation d'échec et mat.
bool castling(bool big)
Permet d'effectuer un roque.
Definition jeu.cpp:48
bool move(Square from, Square to)
Permet d'effectuer un coup.
Definition jeu.cpp:24
Jeu(std::string name)
Initialise la classe.
Definition jeu.cpp:4
std::string canonical() const
Récupère la position canonique du jeu actuel.
Definition jeu.cpp:19
Status check_status()
Vérifie si le jeu est en cours, est en situation de pat ou de mat.
Definition jeu.cpp:38
void setup()
Prépare le jeu en plaçant les pièces.
Definition jeu.cpp:7
void set_message(std::string message)
Met à jour le message dans la console avant la saisie de l'utilisateur.
Definition jeu.hpp:42
void print() const
Affiche l'échiquier ainsi que l'interface dans la sortie standard.
Definition jeu.cpp:12
Classe décrivant une pièce.
Definition piece.hpp:12
Color get_color() const
Definition piece.hpp:75
Décrit une case de l'échiquier.
Definition square.hpp:7
Status
Status de la partie.
Definition enums.hpp:11
@ STALEMATE
Definition enums.hpp:13
@ CHECK_MATE
Definition enums.hpp:14
@ ON_GOING
Definition enums.hpp:12
@ WHITE
Definition enums.hpp:6
@ BLACK
Definition enums.hpp:7