This repository has been archived on 2022-05-02. You can view files and clone it, but cannot push or open issues or pull requests.
Ecosysteme/includes/organisme.hpp
Mylloon be2d39ee8c
Modifications
- Requiert désormais un index et non pas des coordonées (x, y)
- Méthode position() qui renvoie la position de l'organisme dans un univers donné
- Méthode recuperationIDLibre() qui renvoie un index libre dans un univers donné
2022-04-04 23:21:05 +02:00

41 lines
1.2 KiB
C++

#ifndef _ORGANISME_HPP_
#define _ORGANISME_HPP_ 1
#include <map>
class Organisme {
inline static int __totalID; // permet d'incrémenter de 1 l'ID de chaque organisme
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 _index; // Location dans l'univers
public:
const int ID; // ID unique pour chaque organisme
// ID de l'Univers, index dans l'univers
Organisme(int, int);
virtual ~Organisme(void);
// 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;
// Renvoie les positions exact de l'organisme dans l'univers
std::pair<int, std::pair<int, int>> position(int) const noexcept;
// Renvoie un index libre
int recuperationIndexLibre(int);
};
#endif