diff --git a/includes/univers.hpp b/includes/univers.hpp index b7c5adb..c6be56a 100644 --- a/includes/univers.hpp +++ b/includes/univers.hpp @@ -14,7 +14,7 @@ class Univers { friend class Organisme; const int m_longueur, m_largeur, m_taille_univers; // dimensions de l'univers - int m_tour; // tour + int m_tour; // âge de l'univers /* Stocke pour chaque numéro d'univers : * - les index libres (non occupés) @@ -25,10 +25,15 @@ class Univers { 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 * vecteur); + public: const int ID; // ID unique pour chaque univers + // longueur, largeur Univers(const int, const int); + ~Univers(void); // Affiche l'univers à l'instant présent diff --git a/src/univers.cpp b/src/univers.cpp index 8ef0e60..d80dcab 100644 --- a/src/univers.cpp +++ b/src/univers.cpp @@ -13,9 +13,7 @@ Univers::Univers(const int longueur, const int largeur): m_longueur(longueur), } // On mélange notre vecteur d'index non occupés - std::random_device nombre_aleatoire; - std::default_random_engine graine(nombre_aleatoire()); - std::shuffle(m_liste_univers[ID].first.begin(), m_liste_univers[ID].first.end(), graine); + melange(&m_liste_univers[ID].first); // Remplie quelques valeurs du tableau avec de l'herbe while(m_liste_univers[ID].first.size() > static_cast(m_taille_univers - m_taille_univers / 2)) { // cast static grâce à "-Wold-style-cast" et "-Wsign-conversion" (syntaxe C++) @@ -32,6 +30,12 @@ Univers::~Univers(void) { } } +void Univers::melange(std::vector * vecteur) { + std::random_device nombre_aleatoire; + std::default_random_engine graine(nombre_aleatoire()); + std::shuffle(vecteur->begin(), vecteur->end(), graine); +} + void Univers::affichage(void) const noexcept { // On génère le plateau pour l'affichage int * plateau = new int[m_taille_univers]();