47 lines
1.3 KiB
C++
47 lines
1.3 KiB
C++
#ifndef _UNIVERS_HPP_
|
|
#define _UNIVERS_HPP_ 1
|
|
|
|
#include <iostream>
|
|
#include <vector>
|
|
#include <algorithm>
|
|
#include <random>
|
|
|
|
#include "animal.hpp"
|
|
#include "organisme.hpp"
|
|
|
|
class Univers {
|
|
friend class Organisme;
|
|
|
|
const int m, n, taille_univers; // dimensions de l'univers
|
|
int tour; // tour
|
|
|
|
/* Stocke pour chaque numéro d'univers :
|
|
* - les index libres (non occupés)
|
|
* - les organismes présent dans l'univers */
|
|
inline static std::map<int, std::pair<std::vector<int>, std::vector<Organisme*>>> liste_univers;
|
|
|
|
inline static std::map<int, std::pair<int, int>> dimensions_univers; // Dimensions de l'univers (largeur, longueur)
|
|
|
|
inline static int total_ID; // s'incrémente à chaque création d'univers
|
|
|
|
public:
|
|
const int ID; // ID unique pour chaque univers
|
|
|
|
Univers(int, int);
|
|
~Univers(void);
|
|
|
|
// Ajoute des animaux à l'univers
|
|
void ajoutAnimaux(std::vector<Animal*>);
|
|
|
|
/* Modifie un organisme
|
|
* Attention, écrase l'organisme précédent */
|
|
// void modificationOrganisme(Organisme *, int);
|
|
|
|
// Affiche l'univers à l'instant présent
|
|
void affichage(void) const noexcept;
|
|
|
|
// Vérifie s'il y a de la vie dans l'univers
|
|
bool enVie(void) const noexcept;
|
|
};
|
|
|
|
#endif
|