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/univers.hpp
Mylloon 189c38088d
Modifications
- N'ajoute que des animaux à la simulation
- Store plusieurs variables dans la classe plutot que dans la méthode d'ajout d'animaux
- Possibilité d'ajouté un organisme tout seul
- Déclaration méthode d'affichage de l'univers
- Ajout des mot-clés const et noexcept lorsque possible
- Ajout de Herbe & Sel
2022-04-02 01:39:36 +02:00

94 lines
1.9 KiB
C++

#ifndef _UNIVERS_HPP_
#define _UNIVERS_HPP_ 1
#include <iostream>
#include <vector>
class Organisme;
class Animal;
class Univers {
friend class Organisme;
const int _m, _n, _tailleUnivers, _tailleMax;
int _tour, _nbAnimaux;
int * _plateau;
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 int 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
int id(void) const noexcept;
};
// Représenté par "1" dans l'univers
class Sel: public Organisme {
public:
Sel(void);
// Représenté par "1" dans l'univers
int id(void) const noexcept;
};
// Représenté par "2" dans l'univers
class Mouton: public Animal {
public:
Mouton(void);
bool carnivore(void) const noexcept;
// Représenté par "2" dans l'univers
int id(void) const noexcept;
};
// Représenté par "3" dans l'univers
class Loup: public Animal {
public:
Loup(void);
bool carnivore(void) const noexcept;
// Représenté par "3" dans l'univers
int id(void) const noexcept;
};
#endif