#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
Joueur &joueur2;
Joueur *joueur3;
// Barrières
std::vector<PieceSafari *> barrieres;
public:
Safari(Joueur &joueur1, Joueur &joueur2,
Joueur *joueur3 = nullptr); // constructor
virtual ~Safari(); // destructor
// Fonction d'initialisation du jeu
void init() override;
// Fonction de jeu
void play() override;
// Fonction d'évènement
void event(const int x, const int y) override;
// Position curseur
std::pair<int, int> getPosition() const override;
void choixAnimal(const PieceSafari::Categorie animal) const;
};