Ajouts et modifications
- Initialise le plateau avec l'ID de l'herbe - Affiche le caractère correspondant à l'ID au lieu de l'ID et supprime les bordures intérieur - map des ID<->Lettre stocké dans la classe Organisme, lettre ajoutés lors de la construction de la classe correspondante
This commit is contained in:
parent
258c3eecf7
commit
04921a7a38
2 changed files with 31 additions and 23 deletions
48
univers.cpp
48
univers.cpp
|
@ -3,7 +3,11 @@
|
||||||
// -------- Univers --------
|
// -------- Univers --------
|
||||||
|
|
||||||
Univers::Univers(int m, int n): _m(m), _n(n), _tailleUnivers(m * n), _tour(0), _nbAnimaux(0) {
|
Univers::Univers(int m, int n): _m(m), _n(n), _tailleUnivers(m * n), _tour(0), _nbAnimaux(0) {
|
||||||
_plateau = new int[m * n](); // initialise toutes les valeurs du tableau à 0
|
_plateau = new int[_tailleUnivers];
|
||||||
|
|
||||||
|
// Remplie toutes les valeurs du tableau avec l'ID de l'herbe
|
||||||
|
Herbe herbe;
|
||||||
|
std::fill_n(_plateau, _tailleUnivers, herbe.id());
|
||||||
|
|
||||||
// On ajoute tous les index possibles
|
// On ajoute tous les index possibles
|
||||||
for(int i = 0; i < _tailleUnivers; i++)
|
for(int i = 0; i < _tailleUnivers; i++)
|
||||||
|
@ -61,7 +65,7 @@ void Univers::modificationOrganisme(Organisme * organisme, int index) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Univers::affichage(void) const noexcept {
|
void Univers::affichage(void) const noexcept {
|
||||||
for(int i = 0; i < _n * 5; i++)
|
for(int i = 0; i < _n * 4; i++)
|
||||||
if(i == 0)
|
if(i == 0)
|
||||||
std::cout << "┌";
|
std::cout << "┌";
|
||||||
else
|
else
|
||||||
|
@ -70,13 +74,18 @@ void Univers::affichage(void) const noexcept {
|
||||||
|
|
||||||
std::cout << "│ ";
|
std::cout << "│ ";
|
||||||
for(int i = 0; i < _tailleUnivers; i += _n) {
|
for(int i = 0; i < _tailleUnivers; i += _n) {
|
||||||
for(int j = 0; j < _n; j++)
|
for(int j = 0; j < _n; j++) {
|
||||||
printf("%2d │ ", _plateau[i + j]);
|
std::cout << Organisme::correspondance(_plateau[i + j]);
|
||||||
|
if(j == _n - 1)
|
||||||
|
std::cout << " │ ";
|
||||||
|
else
|
||||||
|
std::cout << " ";
|
||||||
|
}
|
||||||
if(i != _tailleUnivers - _n) std::cout << std::endl << "│ ";
|
if(i != _tailleUnivers - _n) std::cout << std::endl << "│ ";
|
||||||
}
|
}
|
||||||
|
|
||||||
std::cout << std::endl;
|
std::cout << std::endl;
|
||||||
for(int i = 0; i < _n * 5; i++)
|
for(int i = 0; i < _n * 4; i++)
|
||||||
if(i == 0)
|
if(i == 0)
|
||||||
std::cout << "└";
|
std::cout << "└";
|
||||||
else
|
else
|
||||||
|
@ -91,25 +100,22 @@ bool Univers::enVie(void) const noexcept {
|
||||||
|
|
||||||
// -------- Organisme --------
|
// -------- Organisme --------
|
||||||
|
|
||||||
Organisme::Organisme(void) {
|
Organisme::Organisme(void) { }
|
||||||
|
|
||||||
|
char Organisme::correspondance(int id) {
|
||||||
|
return _correspondance[id];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// -------- Animal --------
|
// -------- Animal --------
|
||||||
|
|
||||||
Animal::Animal(void): Organisme() {
|
Animal::Animal(void): Organisme() { }
|
||||||
|
|
||||||
}
|
Animal::~Animal(void) { }
|
||||||
|
|
||||||
Animal::~Animal(void) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// -------- Herbe --------
|
// -------- Herbe --------
|
||||||
|
|
||||||
Herbe::Herbe(void): Organisme() {
|
Herbe::Herbe(void): Organisme() {
|
||||||
|
_correspondance[id()] = ' ';
|
||||||
}
|
}
|
||||||
|
|
||||||
short Herbe::id(void) const noexcept {
|
short Herbe::id(void) const noexcept {
|
||||||
|
@ -120,7 +126,7 @@ short Herbe::id(void) const noexcept {
|
||||||
// -------- Sel --------
|
// -------- Sel --------
|
||||||
|
|
||||||
Sel::Sel(void): Organisme() {
|
Sel::Sel(void): Organisme() {
|
||||||
|
_correspondance[id()] = 'S';
|
||||||
}
|
}
|
||||||
|
|
||||||
short Sel::id(void) const noexcept {
|
short Sel::id(void) const noexcept {
|
||||||
|
@ -131,12 +137,10 @@ short Sel::id(void) const noexcept {
|
||||||
// -------- Mouton --------
|
// -------- Mouton --------
|
||||||
|
|
||||||
Mouton::Mouton(void): Animal() {
|
Mouton::Mouton(void): Animal() {
|
||||||
|
_correspondance[id()] = 'M';
|
||||||
}
|
}
|
||||||
|
|
||||||
Mouton::~Mouton(void) {
|
Mouton::~Mouton(void) { }
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Mouton::carnivore(void) const noexcept {
|
bool Mouton::carnivore(void) const noexcept {
|
||||||
return false;
|
return false;
|
||||||
|
@ -150,12 +154,10 @@ short Mouton::id(void) const noexcept {
|
||||||
// -------- Loup --------
|
// -------- Loup --------
|
||||||
|
|
||||||
Loup::Loup(void): Animal() {
|
Loup::Loup(void): Animal() {
|
||||||
|
_correspondance[id()] = 'L';
|
||||||
}
|
}
|
||||||
|
|
||||||
Loup::~Loup(void) {
|
Loup::~Loup(void) { }
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Loup::carnivore(void) const noexcept {
|
bool Loup::carnivore(void) const noexcept {
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <random>
|
#include <random>
|
||||||
|
#include <map>
|
||||||
|
|
||||||
class Organisme;
|
class Organisme;
|
||||||
class Animal;
|
class Animal;
|
||||||
|
@ -36,6 +37,9 @@ class Univers {
|
||||||
};
|
};
|
||||||
|
|
||||||
class Organisme {
|
class Organisme {
|
||||||
|
protected:
|
||||||
|
static inline std::map<int, char> _correspondance;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Organisme(void);
|
Organisme(void);
|
||||||
|
|
||||||
|
@ -44,6 +48,8 @@ class Organisme {
|
||||||
* Si `ID > 0` -> vivant
|
* Si `ID > 0` -> vivant
|
||||||
* Si `ID == 0` -> Herbe */
|
* Si `ID == 0` -> Herbe */
|
||||||
virtual short id(void) const noexcept = 0;
|
virtual short id(void) const noexcept = 0;
|
||||||
|
|
||||||
|
static char correspondance(int);
|
||||||
};
|
};
|
||||||
|
|
||||||
class Animal: public Organisme {
|
class Animal: public Organisme {
|
||||||
|
|
Reference in a new issue