- ID unique par organisme
- Méthode animal pour connaître si l'organisme est un animal
- Méthode correspondance -> lettre
- Coordonnées x et y dans l'univers
This commit is contained in:
Mylloon 2022-04-04 00:12:20 +02:00
parent d3a76dccae
commit b82bad7720
Signed by: Anri
GPG key ID: A82D63DFF8D1317F
2 changed files with 27 additions and 11 deletions

View file

@ -4,19 +4,29 @@
#include <map>
class Organisme {
inline static int __totalID; // permet d'incrémenter de 1 l'ID de chaque animal
protected:
const int _universID; // stocke l'ID de l'univers où l'organisme est présent
/* stocke la table des correspondances,
* chaque organisme possède un ID unique et est
* représenté par une lettre, cette association est
* réalisé dans cette map */
static inline std::map<int, char> _correspondance;
int x, y; // Location dans l'univers
public:
Organisme(void);
const int ID; // ID unique pour chaque animal
/* 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;
Organisme(int, int, int);
static char correspondance(int);
// Renvoie la lettre correspondant à l'ID
static char lettre(int) noexcept;
// Renvoie vrai si l'organisme est un animal
virtual bool animal(void) const noexcept = 0;
};
#endif

View file

@ -1,7 +1,13 @@
#include "../includes/univers.hpp"
#include "../includes/organisme.hpp"
Organisme::Organisme(void) { }
char Organisme::correspondance(int id) {
return _correspondance[id];
Organisme::Organisme(int universID, int x, int y): _universID(universID), x(x), y(y), ID(__totalID + 1) {
__totalID = ID; // + 1 aux ID
Univers::listeUnivers[_universID].second.push_back(this);
}
char Organisme::lettre(int id) noexcept {
if(_correspondance[id])
return _correspondance[id];
return ' ';
}