#ifndef ECOSYSTEME_ANIMAL_HPP #define ECOSYSTEME_ANIMAL_HPP 1 #include #include "organisme.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 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); virtual ~Animal(void); // Animal carnivore ? virtual bool carnivore(void) const noexcept = 0; }; #endif