Mélange du vecteur d'index non occupés déplacé dans une méthode tierce
This commit is contained in:
parent
9a7a30fc2e
commit
9de70611c2
2 changed files with 13 additions and 4 deletions
|
@ -14,7 +14,7 @@ class Univers {
|
||||||
friend class Organisme;
|
friend class Organisme;
|
||||||
|
|
||||||
const int m_longueur, m_largeur, m_taille_univers; // dimensions de l'univers
|
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 :
|
/* Stocke pour chaque numéro d'univers :
|
||||||
* - les index libres (non occupés)
|
* - 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
|
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:
|
public:
|
||||||
const int ID; // ID unique pour chaque univers
|
const int ID; // ID unique pour chaque univers
|
||||||
|
|
||||||
|
// longueur, largeur
|
||||||
Univers(const int, const int);
|
Univers(const int, const int);
|
||||||
|
|
||||||
~Univers(void);
|
~Univers(void);
|
||||||
|
|
||||||
// Affiche l'univers à l'instant présent
|
// Affiche l'univers à l'instant présent
|
||||||
|
|
|
@ -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
|
// On mélange notre vecteur d'index non occupés
|
||||||
std::random_device nombre_aleatoire;
|
melange(&m_liste_univers[ID].first);
|
||||||
std::default_random_engine graine(nombre_aleatoire());
|
|
||||||
std::shuffle(m_liste_univers[ID].first.begin(), m_liste_univers[ID].first.end(), graine);
|
|
||||||
|
|
||||||
// Remplie quelques valeurs du tableau avec de l'herbe
|
// Remplie quelques valeurs du tableau avec de l'herbe
|
||||||
while(m_liste_univers[ID].first.size() > static_cast<uint64_t>(m_taille_univers - m_taille_univers / 2)) { // cast static grâce à "-Wold-style-cast" et "-Wsign-conversion" (syntaxe C++)
|
while(m_liste_univers[ID].first.size() > static_cast<uint64_t>(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<int> * 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 {
|
void Univers::affichage(void) const noexcept {
|
||||||
// On génère le plateau pour l'affichage
|
// On génère le plateau pour l'affichage
|
||||||
int * plateau = new int[m_taille_univers]();
|
int * plateau = new int[m_taille_univers]();
|
||||||
|
|
Reference in a new issue