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/Safari/Safari.hpp

70 lines
1.6 KiB
C++
Raw Normal View History

#pragma once
2023-12-27 22:44:32 +01:00
#include "../Jeu.hpp"
#include "PieceSafari.hpp"
#include "PlateauSafari.hpp"
2023-12-10 15:03:07 +01:00
2023-12-27 22:44:32 +01:00
class Safari : private Jeu {
friend std::ostream &operator<<(std::ostream &, const Safari &);
// Plateau de jeu
2023-12-10 15:03:07 +01:00
PlateauSafari plateau;
// Joueurs
Joueur &joueur2;
Joueur *joueur3;
2024-01-07 03:06:41 +01:00
// Savoir si le joueur courant à déjà déplacer son animal
// et placer sa barrière
bool deplacerAnimal, placerBarriere;
2024-01-06 19:20:42 +01:00
// Etape du jeu, pour savoir où on en est
enum Etape {
ChoixJ1 = 0,
ChoixJ2,
ChoixJ3,
2024-01-07 02:32:26 +01:00
Placement,
2024-01-06 19:20:42 +01:00
EnJeu,
Fini,
};
// Où l'on se trouve dans le jeu, à quelle étape nous sommes
enum Etape etape;
// Barrières posés
int barrieres;
2024-01-06 19:20:42 +01:00
// Permet de transformer une Piece en PieceSafari
2024-01-07 02:32:26 +01:00
PieceSafari *getPiece(const int x, const int y) const;
2024-01-07 03:06:41 +01:00
PieceSafari *getPiece(Piece *) const;
2024-01-06 19:20:42 +01:00
// Position curseur
2024-01-07 12:44:33 +01:00
const Position getPosition() const override;
2024-01-06 19:20:42 +01:00
// Change de joueur courant
void changerJoueurCourant();
// Message du choix des animaux
const std::string msgChoixAnimal() const;
2024-01-07 02:32:26 +01:00
// Message pour le placement des animaux
const std::string msgPlacement() const;
// Message à chaque tour de joueur
const std::string msgTonTour() const;
// Auxilliaire pour le choix des pièces par le joueur
void choixJoueur(const Etape prochaineEtape);
2024-01-06 19:20:42 +01:00
public:
Safari(Joueur &joueur1, Joueur &joueur2,
Joueur *joueur3 = nullptr); // constructor
virtual ~Safari(); // destructor
// Fonction de jeu
void play() override;
// Fonction d'évènement
void event(const int x, const int y) override;
};