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(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
|
||||
for(int i = 0; i < _tailleUnivers; i++)
|
||||
|
@ -61,7 +65,7 @@ void Univers::modificationOrganisme(Organisme * organisme, int index) {
|
|||
}
|
||||
|
||||
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)
|
||||
std::cout << "┌";
|
||||
else
|
||||
|
@ -70,13 +74,18 @@ void Univers::affichage(void) const noexcept {
|
|||
|
||||
std::cout << "│ ";
|
||||
for(int i = 0; i < _tailleUnivers; i += _n) {
|
||||
for(int j = 0; j < _n; j++)
|
||||
printf("%2d │ ", _plateau[i + j]);
|
||||
for(int j = 0; j < _n; 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 << "│ ";
|
||||
}
|
||||
|
||||
std::cout << std::endl;
|
||||
for(int i = 0; i < _n * 5; i++)
|
||||
for(int i = 0; i < _n * 4; i++)
|
||||
if(i == 0)
|
||||
std::cout << "└";
|
||||
else
|
||||
|
@ -91,25 +100,22 @@ bool Univers::enVie(void) const noexcept {
|
|||
|
||||
// -------- Organisme --------
|
||||
|
||||
Organisme::Organisme(void) {
|
||||
Organisme::Organisme(void) { }
|
||||
|
||||
char Organisme::correspondance(int id) {
|
||||
return _correspondance[id];
|
||||
}
|
||||
|
||||
|
||||
// -------- Animal --------
|
||||
|
||||
Animal::Animal(void): Organisme() {
|
||||
Animal::Animal(void): Organisme() { }
|
||||
|
||||
}
|
||||
|
||||
Animal::~Animal(void) {
|
||||
|
||||
}
|
||||
Animal::~Animal(void) { }
|
||||
|
||||
// -------- Herbe --------
|
||||
|
||||
Herbe::Herbe(void): Organisme() {
|
||||
|
||||
_correspondance[id()] = ' ';
|
||||
}
|
||||
|
||||
short Herbe::id(void) const noexcept {
|
||||
|
@ -120,7 +126,7 @@ short Herbe::id(void) const noexcept {
|
|||
// -------- Sel --------
|
||||
|
||||
Sel::Sel(void): Organisme() {
|
||||
|
||||
_correspondance[id()] = 'S';
|
||||
}
|
||||
|
||||
short Sel::id(void) const noexcept {
|
||||
|
@ -131,12 +137,10 @@ short Sel::id(void) const noexcept {
|
|||
// -------- Mouton --------
|
||||
|
||||
Mouton::Mouton(void): Animal() {
|
||||
|
||||
_correspondance[id()] = 'M';
|
||||
}
|
||||
|
||||
Mouton::~Mouton(void) {
|
||||
|
||||
}
|
||||
Mouton::~Mouton(void) { }
|
||||
|
||||
bool Mouton::carnivore(void) const noexcept {
|
||||
return false;
|
||||
|
@ -150,12 +154,10 @@ short Mouton::id(void) const noexcept {
|
|||
// -------- Loup --------
|
||||
|
||||
Loup::Loup(void): Animal() {
|
||||
|
||||
_correspondance[id()] = 'L';
|
||||
}
|
||||
|
||||
Loup::~Loup(void) {
|
||||
|
||||
}
|
||||
Loup::~Loup(void) { }
|
||||
|
||||
bool Loup::carnivore(void) const noexcept {
|
||||
return false;
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#include <vector>
|
||||
#include <algorithm>
|
||||
#include <random>
|
||||
#include <map>
|
||||
|
||||
class Organisme;
|
||||
class Animal;
|
||||
|
@ -36,6 +37,9 @@ class Univers {
|
|||
};
|
||||
|
||||
class Organisme {
|
||||
protected:
|
||||
static inline std::map<int, char> _correspondance;
|
||||
|
||||
public:
|
||||
Organisme(void);
|
||||
|
||||
|
@ -44,6 +48,8 @@ class Organisme {
|
|||
* Si `ID > 0` -> vivant
|
||||
* Si `ID == 0` -> Herbe */
|
||||
virtual short id(void) const noexcept = 0;
|
||||
|
||||
static char correspondance(int);
|
||||
};
|
||||
|
||||
class Animal: public Organisme {
|
||||
|
|
Reference in a new issue