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/animal.hpp
Mylloon 68c22bf5ea
Modifications et ajouts
- Lorsque on organisme fait une action et qu'un organisme meurt, définie une nouvelle variable "mort" à vraie, l'organisme reste dans le vecteur
- A la fin des actions de tout les organismes, le vecteur est nettoyé avec la nouvelle méthode "nettoyageMorts"
- Gestion de la faim du mouton
- Le loup meurt  s'il a trop faim
2022-04-12 15:08:58 +02:00

47 lines
1.5 KiB
C++

#ifndef ECOSYSTEME_ANIMAL_HPP
#define ECOSYSTEME_ANIMAL_HPP 1
#include "univers.hpp"
/* Un animal possède une vitesse, plus il est rapide,
* plus vite il se déplacera à chaque tour, par exemple :
* dans le cas où un chasseur et un chassé s'ont l'un à côté
* de l'autre, si le chasseur se déplace plus vite, il mangera
* le chassé, en revanche, si c'est le chassé qui a une meilleure
* vitesse, alors c'est lui qui se déplacera en premier et il
* fuira */
class Animal: public Organisme {
protected:
const int m_age_max; // age maximale que peut atteindre l'organisme
const int m_faim_max; // faim maximal que peut atteindre l'animal avant de mourir
int m_faim = 0; // faim de l'animal
int m_age = 0; // age actuel de l'organisme
bool m_reproduire = true; // est-ce que l'animal peut se reproduire ?
// Renvoie une vitesse aléatoire (+ élevé = + rapide)
virtual int generationVitesse(void) const noexcept = 0;
// Renvoie la liste des cases accesible depuis la position de l'animal
std::vector<int> casesPossible(void) const noexcept;
public:
const int vitesse; // vitesse de l'organisme
// ID de l'univers, age max, faim max, vitesse
Animal(int, int, int, int);
// ID de l'univers, index dans l'univers, age max, faim max, vitesse
Animal(int, int, int, int, int);
~Animal(void);
// Animal carnivore ?
virtual bool carnivore(void) const noexcept = 0;
};
#endif