From 346fe5f2e9348dab73d5e71d448a2434cfcbb8ec Mon Sep 17 00:00:00 2001 From: Mylloon Date: Tue, 12 Apr 2022 15:20:21 +0200 Subject: [PATCH] =?UTF-8?q?D=C3=A9pot=20de=20sel=20=C3=A0=20la=20mort=20d'?= =?UTF-8?q?un=20animal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- includes/animal.hpp | 4 ++++ src/animal.cpp | 13 ++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/includes/animal.hpp b/includes/animal.hpp index 66ab29e..dc82baf 100644 --- a/includes/animal.hpp +++ b/includes/animal.hpp @@ -2,6 +2,7 @@ #define ECOSYSTEME_ANIMAL_HPP 1 #include "univers.hpp" +#include "sel.hpp" /* Un animal possède une vitesse, plus il est rapide, * plus vite il se déplacera à chaque tour, par exemple : @@ -23,6 +24,9 @@ class Animal: public Organisme { bool m_reproduire = true; // est-ce que l'animal peut se reproduire ? + // vrai si l'animal doit déposé des sédiment au sol à sa mort + bool m_deposer_sediment = true; + // Renvoie une vitesse aléatoire (+ élevé = + rapide) virtual int generationVitesse(void) const noexcept = 0; diff --git a/src/animal.cpp b/src/animal.cpp index 6803e13..3618a7d 100644 --- a/src/animal.cpp +++ b/src/animal.cpp @@ -15,9 +15,16 @@ Animal::Animal(const int univers_ID, const int age_max, Animal::~Animal(void) { suppresionVecteurs(false); - // Vérfie que il n'y a rien sur la case - // -> s'il y a quelque chose = on ne fais rien (sel/herbe) - // -> s'il n'y a rien = on dépose des sels minéraux sur la case + // Vérifie si l'ont doit déposé des sédiments + if(m_deposer_sediment) { + // Vérfie que il n'y a rien sur la case + auto debut = Univers::m_index_libres_univers[m_univers_ID].first.begin(); + auto fin = Univers::m_index_libres_univers[m_univers_ID].first.end(); + auto it = std::find(debut, fin, m_index); + if(it != fin) { // il n'y a rien, on dépose des sels minéraux sur la case + new Sel(m_univers_ID, m_index); + } // else -> on ne fais rien + } } std::vector Animal::casesPossible(void) const noexcept {