Définition comportement Sel + destructeur
This commit is contained in:
parent
b217c41116
commit
d2586b62d2
2 changed files with 28 additions and 2 deletions
|
@ -1,11 +1,14 @@
|
||||||
#ifndef ECOSYSTEME_SEL_HPP
|
#ifndef ECOSYSTEME_SEL_HPP
|
||||||
#define ECOSYSTEME_SEL_HPP 1
|
#define ECOSYSTEME_SEL_HPP 1
|
||||||
|
|
||||||
|
|
||||||
#include "organisme.hpp"
|
#include "organisme.hpp"
|
||||||
|
|
||||||
class Sel: public Organisme {
|
class Sel: public Organisme {
|
||||||
const char _m_lettre = '-'; // caractère représentant le sel
|
const char _m_lettre = '-'; // caractère représentant le sel
|
||||||
|
|
||||||
|
int m_age = 0;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// ID de l'univers, index dans l'univers
|
// ID de l'univers, index dans l'univers
|
||||||
Sel(int, int);
|
Sel(int, int);
|
||||||
|
@ -13,7 +16,10 @@ class Sel: public Organisme {
|
||||||
// ID de l'univers
|
// ID de l'univers
|
||||||
Sel(int);
|
Sel(int);
|
||||||
|
|
||||||
// Définit le comportement du sel
|
// Remplace le sel par de l'herbe
|
||||||
|
~Sel(void);
|
||||||
|
|
||||||
|
// Définit le comportement du sel à chaque tour
|
||||||
void action(void);
|
void action(void);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
22
src/sel.cpp
22
src/sel.cpp
|
@ -1,4 +1,5 @@
|
||||||
#include "../includes/sel.hpp"
|
#include "../includes/sel.hpp"
|
||||||
|
#include "../includes/univers.hpp"
|
||||||
|
|
||||||
Sel::Sel(const int univers_ID, const int index): Organisme(univers_ID, index) {
|
Sel::Sel(const int univers_ID, const int index): Organisme(univers_ID, index) {
|
||||||
m_correspondance[ID] = _m_lettre;
|
m_correspondance[ID] = _m_lettre;
|
||||||
|
@ -8,4 +9,23 @@ Sel::Sel(const int univers_ID): Organisme(univers_ID) {
|
||||||
m_correspondance[ID] = _m_lettre;
|
m_correspondance[ID] = _m_lettre;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Sel::action(void) { }
|
Sel::~Sel(void) {
|
||||||
|
// On se supprime du vecteur
|
||||||
|
auto debut = Univers::m_liste_univers[m_univers_ID].second.begin();
|
||||||
|
auto fin = Univers::m_liste_univers[m_univers_ID].second.end();
|
||||||
|
auto it = std::find(debut, fin, this);
|
||||||
|
if(it != fin) {
|
||||||
|
Univers::m_liste_univers[m_univers_ID].second.erase(it);
|
||||||
|
}
|
||||||
|
|
||||||
|
// On ajoute une herbe à la place
|
||||||
|
new Herbe(m_univers_ID, m_index);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Sel::action(void) {
|
||||||
|
if(m_age == 1) { // devient de l'herbe au bout d'un tour
|
||||||
|
delete this;
|
||||||
|
} else {
|
||||||
|
++m_age;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Reference in a new issue