This repository has been archived on 2024-01-18. You can view files and clone it, but cannot push or open issues or pull requests.
DamesEtCo/includes/Dames/Dames.hpp

52 lines
1.1 KiB
C++
Raw Permalink Normal View History

#pragma once
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;
2024-01-12 01:15:19 +01:00
class Dames final : private Jeu {
friend std::ostream &operator<<(std::ostream &, const Dames &);
// Plateau de jeu
2023-12-14 15:58:43 +01:00
PlateauDames plateau;
// 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-11 23:28:08 +01:00
const 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();
public:
2023-12-01 15:06:20 +01:00
Dames(Joueur &joueur1, Joueur &joueur2); // constructor
virtual ~Dames(); // destructor
// Fonction de jeu
void play() override;
// Fonction d'évènement
void event(const int x, const int y) override;
// Position curseur
2024-01-07 12:44:33 +01:00
const Position getPosition() const override;
// 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
};