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

43 lines
1.3 KiB
C++
Raw Normal View History

2023-12-10 15:03:07 +01:00
#pragma once
2024-01-08 10:18:01 +01:00
#include "../Joueur.hpp"
#include "../Plateau.hpp"
#include "PieceSafari.hpp"
2023-12-10 15:03:07 +01:00
2024-01-12 01:15:19 +01:00
struct PlateauSafari final : public Plateau {
2023-12-14 15:58:43 +01:00
PlateauSafari();
2023-12-10 15:03:07 +01:00
virtual ~PlateauSafari();
2023-12-14 15:58:43 +01:00
2024-01-06 19:20:42 +01:00
// Fonction pour afficher le plateau vers une sortie
void afficherPlateau(std::ostream &, const bool debug = false) const override;
2024-01-07 03:23:18 +01:00
2024-01-07 22:56:16 +01:00
// Pareil que deplacementValide mais est utilisable avec des coordonnées
bool deplacementValideCoor(const int x1, const int y1, const int x2,
2024-01-08 03:07:42 +01:00
const int y2) const;
2024-01-07 22:56:16 +01:00
2024-01-07 03:23:18 +01:00
// Vérifie que le déplacement est valide
bool deplacementValide(const int destX, const int destY) const;
// Renvoie la position du placeholder
2024-01-07 22:19:10 +01:00
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
2024-01-07 22:19:10 +01:00
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);
2024-01-07 22:19:10 +01:00
2024-01-08 10:18:01 +01:00
// Renvoie le nombre d'animaux jouable pour un joueur donnné
int zoneDeplacementOk(const Joueur *joueur) const;
2024-01-07 22:19:10 +01:00
private:
// Barrières
std::vector<PieceSafari *> barrieres;
PositionMutable placeholderBarriere;
2023-12-13 12:01:59 +01:00
};