#pragma once #include "../Jeu.hpp" #include "PieceSafari.hpp" #include "PlateauSafari.hpp" class Safari : private Jeu { friend std::ostream &operator<<(std::ostream &, const Safari &); // Plateau de jeu PlateauSafari plateau; // Joueurs const Joueur &joueur2; const Joueur *joueur3; // Etape du jeu, pour savoir où on en est enum Etape { ChoixJ1 = 0, ChoixJ2, ChoixJ3, EnJeu, Fini, }; // Où l'on se trouve dans le jeu, à quelle étape nous sommes enum Etape etape; // Barrières std::vector barrieres; // Permet de transformer une Piece en PieceSafari const PieceSafari *getPiece(const int x, const int y) const; // Position curseur const std::pair getPosition() const override; // Change de joueur courant void changerJoueurCourant(); // Assignie un animal au joueur courant void choixAnimal(const PieceSafari::Categorie animal); 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; };