check deplacement

This commit is contained in:
Mylloon 2024-01-07 03:23:18 +01:00
parent d5776ac144
commit 6773361b03
Signed by: Anri
GPG key ID: A82D63DFF8D1317F
3 changed files with 12 additions and 2 deletions

View file

@ -17,4 +17,7 @@ public:
// Fonction pour afficher le plateau vers une sortie // Fonction pour afficher le plateau vers une sortie
void afficherPlateau(std::ostream &, const bool debug = false) const override; 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;
}; };

View file

@ -114,3 +114,10 @@ void PlateauSafari::afficherPlateau(std::ostream &out, const bool d) const {
out << "---\n"; out << "---\n";
} }
} }
bool PlateauSafari::deplacementValide(const int x, const int y) const {
std::pair<const int, const int> posInitiale = selection->getPos();
return std::abs(x - posInitiale.first) == 0 ||
std::abs(y - posInitiale.second) == 0;
}

View file

@ -186,8 +186,8 @@ void Safari::event(const int x, const int y) {
// Déplacer un animal // Déplacer un animal
if (!deplacerAnimal && p == nullptr) { if (!deplacerAnimal && p == nullptr) {
// TODO: Vérifier que le déplacement est correct // Vérifier que le déplacement est correct
if (true) { if (plateau.deplacementValide(posCurseur.first, posCurseur.second)) {
plateau.moveSelection(posCurseur.first, posCurseur.second); plateau.moveSelection(posCurseur.first, posCurseur.second);
justChanged = true; justChanged = true;
deplacerAnimal = true; deplacerAnimal = true;