#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;
// Barrières
std::vector<PieceSafari *> barrieres;
public:
Safari(const Joueur &joueur1, const Joueur &joueur2,
const 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
const std::pair<const int, const int> getPosition() const override;
void choixAnimal(const PieceSafari::Categorie animal);
};