From ce3837d0e2b85d2e75337f4caa17fd9429f61b8f Mon Sep 17 00:00:00 2001 From: Mylloon Date: Mon, 11 Apr 2022 00:47:14 +0200 Subject: [PATCH] =?UTF-8?q?Modification=20et=20ajout=20-=20M=C3=A9thode=20?= =?UTF-8?q?position=20ne=20prend=20d=C3=A9sormais=20plus=20d'argument=20-?= =?UTF-8?q?=20Ajout=20d'une=20m=C3=A9thode=20qui=20renvoie=20les=20coordon?= =?UTF-8?q?n=C3=A9es=20en=20mode=20"echequier"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- includes/organisme.hpp | 7 +++++-- src/evenement.cpp | 6 +++--- src/organisme.cpp | 10 ++++++++-- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/includes/organisme.hpp b/includes/organisme.hpp index b9f448c..cdc3c1a 100644 --- a/includes/organisme.hpp +++ b/includes/organisme.hpp @@ -32,8 +32,11 @@ class Organisme { // Définit le comportement de l'organisme à chaque tour virtual void action(void) = 0; - // Renvoie les positions exact de l'organisme dans l'univers - std::pair> position(int) const noexcept; + // Renvoie les positions exact de l'organisme dans l'univers donnée + std::pair> position(void) const noexcept; + + // Renvoie les coordonées de l'organisme en format "echequier" + std::string coordoneeeEchequier(void); }; #endif diff --git a/src/evenement.cpp b/src/evenement.cpp index caedefe..7b782db 100644 --- a/src/evenement.cpp +++ b/src/evenement.cpp @@ -31,8 +31,8 @@ void Evenement::affichage(Univers * univers, const bool traits) noexcept { for(auto it: univers->m_organismes_univers[univers->ID]) { // Vérification : un animal doit avoir la priorité sur // un autre organisme dans l'affichage - if(plateau[it->position(univers->ID).first] == 0) { // pas de souci, aucun organisme à cette position - plateau[it->position(univers->ID).first] = it->ID; + if(plateau[it->position().first] == 0) { // pas de souci, aucun organisme à cette position + plateau[it->position().first] = it->ID; } else { // souci : un organisme est déjà présent // on sait déjà qu'un animal ne se superpose pas sur // une autre case animal, donc c'est soit : @@ -40,7 +40,7 @@ void Evenement::affichage(Univers * univers, const bool traits) noexcept { // - l'inverse, un non-animal sur une case animal // on utilises dynamic_cast<>() pour savoir le type de l'organisme if(dynamic_cast(it)) { // si c'est un animal - plateau[it->position(univers->ID).first] = it->ID; + plateau[it->position().first] = it->ID; } // sinon ne fait rien } } diff --git a/src/organisme.cpp b/src/organisme.cpp index 9343375..e69cee4 100644 --- a/src/organisme.cpp +++ b/src/organisme.cpp @@ -64,6 +64,12 @@ char Organisme::lettre(const int id) noexcept { return ' '; } -std::pair> Organisme::position(const int id) const noexcept { - return std::make_pair(m_index, std::make_pair(m_index / Univers::m_dimensions_univers[id].first, m_index % Univers::m_dimensions_univers[id].first)); +std::pair> Organisme::position(void) const noexcept { + return std::make_pair(m_index, std::make_pair(m_index / Univers::m_dimensions_univers[m_univers_ID].first, m_index % Univers::m_dimensions_univers[m_univers_ID].first)); +} + +std::string Organisme::coordoneeeEchequier(void) { + int x = position().second.second + 1; + char y = 'A' + position().second.first; + return y + std::to_string(x); }