From 6773361b03329b9e881871bffae5e89e47a32b33 Mon Sep 17 00:00:00 2001 From: Mylloon Date: Sun, 7 Jan 2024 03:23:18 +0100 Subject: [PATCH] check deplacement --- includes/Safari/PlateauSafari.hpp | 3 +++ src/Safari/PlateauSafari.cpp | 7 +++++++ src/Safari/Safari.cpp | 4 ++-- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/includes/Safari/PlateauSafari.hpp b/includes/Safari/PlateauSafari.hpp index e53f7d7..d10fb1b 100644 --- a/includes/Safari/PlateauSafari.hpp +++ b/includes/Safari/PlateauSafari.hpp @@ -17,4 +17,7 @@ public: // 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; }; diff --git a/src/Safari/PlateauSafari.cpp b/src/Safari/PlateauSafari.cpp index 29f7a30..e033e33 100644 --- a/src/Safari/PlateauSafari.cpp +++ b/src/Safari/PlateauSafari.cpp @@ -114,3 +114,10 @@ void PlateauSafari::afficherPlateau(std::ostream &out, const bool d) const { out << "---\n"; } } + +bool PlateauSafari::deplacementValide(const int x, const int y) const { + std::pair posInitiale = selection->getPos(); + + return std::abs(x - posInitiale.first) == 0 || + std::abs(y - posInitiale.second) == 0; +} diff --git a/src/Safari/Safari.cpp b/src/Safari/Safari.cpp index 868ea29..8da2ac7 100644 --- a/src/Safari/Safari.cpp +++ b/src/Safari/Safari.cpp @@ -186,8 +186,8 @@ void Safari::event(const int x, const int y) { // Déplacer un animal if (!deplacerAnimal && p == nullptr) { - // TODO: Vérifier que le déplacement est correct - if (true) { + // Vérifier que le déplacement est correct + if (plateau.deplacementValide(posCurseur.first, posCurseur.second)) { plateau.moveSelection(posCurseur.first, posCurseur.second); justChanged = true; deplacerAnimal = true;