2023-12-01 15:27:43 +01:00
|
|
|
#pragma once
|
2023-11-12 16:05:42 +01:00
|
|
|
|
2023-12-27 22:44:32 +01:00
|
|
|
#include "../Jeu.hpp"
|
2023-12-14 15:58:43 +01:00
|
|
|
#include "PlateauDames.hpp"
|
2023-11-26 17:53:37 +01:00
|
|
|
|
2024-01-08 16:01:09 +01:00
|
|
|
struct PieceDames;
|
|
|
|
|
2023-12-27 22:44:32 +01:00
|
|
|
class Dames : private Jeu {
|
2023-11-12 16:05:42 +01:00
|
|
|
friend std::ostream &operator<<(std::ostream &, const Dames &);
|
|
|
|
|
|
|
|
// Plateau de jeu
|
2023-12-14 15:58:43 +01:00
|
|
|
PlateauDames plateau;
|
2023-11-12 16:05:42 +01:00
|
|
|
|
|
|
|
// Joueurs
|
2024-01-08 16:01:09 +01:00
|
|
|
Joueur &joueur2;
|
|
|
|
|
|
|
|
// Etape du jeu, pour savoir où on en est
|
|
|
|
enum Etape {
|
2024-01-11 23:01:41 +01:00
|
|
|
EnJeu = 0,
|
2024-01-08 16:01:09 +01:00
|
|
|
Fini,
|
|
|
|
};
|
|
|
|
|
|
|
|
// Où l'on se trouve dans le jeu, à quelle étape nous sommes
|
|
|
|
enum Etape etape;
|
|
|
|
|
|
|
|
// Permet de transformer une Piece en PieceDames
|
|
|
|
const PieceDames *getPiece(const int x, const int y) const;
|
2024-01-10 22:33:39 +01:00
|
|
|
PieceDames *getPiece(Piece *) const;
|
2024-01-08 16:01:09 +01:00
|
|
|
|
|
|
|
// Message à chaque tour du joueur
|
|
|
|
const std::string msgTonTour() const;
|
|
|
|
|
|
|
|
// Change de joueur courant
|
|
|
|
void changerJoueurCourant();
|
2023-11-12 16:05:42 +01:00
|
|
|
|
|
|
|
public:
|
2023-12-01 15:06:20 +01:00
|
|
|
Dames(Joueur &joueur1, Joueur &joueur2); // constructor
|
|
|
|
virtual ~Dames(); // destructor
|
2023-11-12 16:05:42 +01:00
|
|
|
|
2023-12-28 18:01:50 +01:00
|
|
|
// Fonction de jeu
|
|
|
|
void play() override;
|
|
|
|
|
|
|
|
// Fonction d'évènement
|
|
|
|
void event(const int x, const int y) override;
|
|
|
|
|
2023-12-28 18:26:52 +01:00
|
|
|
// Position curseur
|
2024-01-07 12:44:33 +01:00
|
|
|
const Position getPosition() const override;
|
2023-12-28 18:26:52 +01:00
|
|
|
|
2023-12-14 17:09:27 +01:00
|
|
|
// Vérifie si une prise est possible pour une pièce donnée
|
2023-12-19 15:55:56 +01:00
|
|
|
bool prisePossible(Joueur &joueur) const;
|
2023-11-26 17:53:37 +01:00
|
|
|
};
|