#pragma once #include "../Plateau.hpp" #include "PieceSafari.hpp" struct PlateauSafari : public Plateau { PlateauSafari(); virtual ~PlateauSafari(); // Fonction pour afficher le plateau vers une sortie void afficherPlateau(std::ostream &, const bool debug = false) const override; // Vérifie que le déplacement est valide bool deplacementValide(const int destX, const int destY) const; // Renvoie la position du placeholder Position getPlaceholderBarriere() const; // Modifie la position du placeholder void setPlaceholderBarriere(const int x, const int y); // Avec les positions du placeholder et les positions données // Vérifie que les 2 points sont à côtés bool validWithPlaceholder(const int x, const int y) const; // Place la barrière, renvoie si on a réussi bool placementBarriere(const int x, const int y); // Renvoie le nombre d'animaux jouable par le joueur courant int zoneDeplacementOk() const; private: // Barrières std::vector barrieres; PositionMutable placeholderBarriere; };