#ifndef ECOSYSTEME_UNIVERS_HPP
#define ECOSYSTEME_UNIVERS_HPP 1
#include <iostream>
#include <vector>
#include <algorithm>
#include <random>
#include "animal.hpp"
#include "organisme.hpp"
#include "herbe.hpp"
class Univers {
friend class Organisme;
friend class Evenement;
const int m_longueur, m_largeur, m_taille_univers; // dimensions de l'univers
int m_tour; // âge de l'univers
// 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*>>> m_liste_univers;
inline static std::map<int, std::pair<int, int>> m_dimensions_univers; // Dimensions de l'univers (largeur, longueur)
inline static int m_total_ID; // s'incrémente à chaque création d'univers
// Mélange le contenu d'un vecteur
void melange(std::vector<int> * vecteur);
public:
const int ID; // ID unique pour chaque univers
// longueur, largeur
Univers(int, int);
~Univers(void);
// Vérifie s'il y a de la vie dans l'univers
bool enVie(void) const noexcept;
};
#endif