Mylloon
7971c8b4f1
- Affichage de l'univers - Vecteur qui liste les index libres (rangés aléatoirement) - ID maintenant des short
94 lines
1.9 KiB
C++
94 lines
1.9 KiB
C++
#ifndef _UNIVERS_HPP_
|
|
#define _UNIVERS_HPP_ 1
|
|
|
|
#include <iostream>
|
|
#include <vector>
|
|
#include <algorithm>
|
|
#include <random>
|
|
|
|
class Organisme;
|
|
class Animal;
|
|
|
|
class Univers {
|
|
friend class Organisme;
|
|
|
|
const int _m, _n, _tailleUnivers;
|
|
int _tour, _nbAnimaux;
|
|
int * _plateau;
|
|
std::vector<int> indexLibres;
|
|
|
|
public:
|
|
Univers(int, int);
|
|
~Univers(void);
|
|
|
|
// Ajoute des animaux à l'univers
|
|
void ajoutAnimaux(std::vector<Animal*>);
|
|
|
|
/* Ajoute un organisme
|
|
* Attention, écrase l'organisme précédent */
|
|
void ajoutOrganisme(Organisme *, int);
|
|
|
|
// Affiche l'univers à l'instant présent
|
|
void affichage(void);
|
|
|
|
// Vérifie s'il y a de la vie dans l'univers
|
|
bool enVie(void) const noexcept;
|
|
};
|
|
|
|
class Organisme {
|
|
public:
|
|
Organisme(void);
|
|
|
|
/* Renvoie l'ID de l'organisme
|
|
* Si `ID < 0` -> non vivant
|
|
* Si `ID > 0` -> vivant
|
|
* Si `ID == 0` -> Herbe */
|
|
virtual short id(void) const noexcept = 0;
|
|
};
|
|
|
|
class Animal: public Organisme {
|
|
public:
|
|
Animal(void);
|
|
|
|
// Animal carnivore ?
|
|
virtual bool carnivore(void) const noexcept = 0;
|
|
};
|
|
|
|
class Herbe: public Organisme {
|
|
public:
|
|
Herbe(void);
|
|
|
|
// Représenté par "0" dans l'univers
|
|
short id(void) const noexcept;
|
|
};
|
|
|
|
class Sel: public Organisme {
|
|
public:
|
|
Sel(void);
|
|
|
|
// Représenté par "-1" dans l'univers
|
|
short id(void) const noexcept;
|
|
};
|
|
|
|
class Mouton: public Animal {
|
|
public:
|
|
Mouton(void);
|
|
|
|
bool carnivore(void) const noexcept;
|
|
|
|
// Représenté par "1" dans l'univers
|
|
short id(void) const noexcept;
|
|
};
|
|
|
|
|
|
class Loup: public Animal {
|
|
public:
|
|
Loup(void);
|
|
|
|
bool carnivore(void) const noexcept;
|
|
|
|
// Représenté par "2" dans l'univers
|
|
short id(void) const noexcept;
|
|
};
|
|
|
|
#endif
|