diff --git a/includes/animal.hpp b/includes/animal.hpp index 9c7bffa..45ac521 100644 --- a/includes/animal.hpp +++ b/includes/animal.hpp @@ -13,7 +13,7 @@ class Animal: public Organisme { protected: - const int vitesse, ageMAX; + const int vitesse, age_max; int age; diff --git a/includes/organisme.hpp b/includes/organisme.hpp index 82c7812..f4827bf 100644 --- a/includes/organisme.hpp +++ b/includes/organisme.hpp @@ -4,10 +4,10 @@ #include class Organisme { - inline static int totalID; // permet d'incrémenter de 1 l'ID de chaque organisme + inline static int total_ID; // permet d'incrémenter de 1 l'ID de chaque organisme protected: - const int universID; // stocke l'ID de l'univers où l'organisme est présent + const int univers_ID; // stocke l'ID de l'univers où l'organisme est présent /* stocke la table des correspondances, * chaque organisme possède un ID unique et est diff --git a/includes/univers.hpp b/includes/univers.hpp index 3eb5f44..fe0fb50 100644 --- a/includes/univers.hpp +++ b/includes/univers.hpp @@ -12,17 +12,17 @@ class Univers { friend class Organisme; - const int m, n, tailleUnivers; // dimensions de l'univers + 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, std::vector>> listeUnivers; + inline static std::map, std::vector>> liste_univers; - inline static std::map> dimensionsUnivers; // Dimensions de l'univers (largeur, longueur) + inline static std::map> dimensions_univers; // Dimensions de l'univers (largeur, longueur) - inline static int totalID; // s'incrémente à chaque création d'univers + inline static int total_ID; // s'incrémente à chaque création d'univers public: const int ID; // ID unique pour chaque univers diff --git a/src/animal.cpp b/src/animal.cpp index bc6cf9b..0d93d1b 100644 --- a/src/animal.cpp +++ b/src/animal.cpp @@ -1,13 +1,13 @@ #include "../includes/animal.hpp" -Animal::Animal(int universID_p, int ageMax, int age_p, int vitesse_p): Organisme(universID_p, recuperationIndexLibre(universID_p)), // position aléatoire - vitesse(vitesse_p), // par des coordonées - ageMAX(ageMax), // d'un index de - age(age_p) { } // indexLibres (listeUnivers[ID].first) +Animal::Animal(int universID_p, int age_max_p, int age_p, int vitesse_p): Organisme(universID_p, recuperationIndexLibre(universID_p)), // position aléatoire + vitesse(vitesse_p), // par des coordonées + age_max(age_max_p), // d'un index de + age(age_p) { } // indexLibres (listeUnivers[ID].first) -Animal::Animal(int universID_p, int index_p, int ageMax, int age_p, int vitesse_p): Organisme(universID_p, index_p), +Animal::Animal(int universID_p, int index_p, int age_max_p, int age_p, int vitesse_p): Organisme(universID_p, index_p), vitesse(vitesse_p), - ageMAX(ageMax), + age_max(age_max_p), age(age_p) { } Animal::~Animal(void) { } diff --git a/src/organisme.cpp b/src/organisme.cpp index 99848d8..69e5af2 100644 --- a/src/organisme.cpp +++ b/src/organisme.cpp @@ -1,11 +1,11 @@ #include "../includes/univers.hpp" #include "../includes/organisme.hpp" -Organisme::Organisme(int universID_p, int index_p): universID(universID_p), index(index_p), ID(totalID + 1) { - if(Univers::listeUnivers[universID].first.size() == 0) // si il n'y a plus d'index de libres +Organisme::Organisme(int universID_p, int index_p): univers_ID(universID_p), index(index_p), ID(total_ID + 1) { + if(Univers::liste_univers[univers_ID].first.size() == 0) // si il n'y a plus d'index de libres throw std::domain_error("Trop d'organismes pour l'univers."); - totalID = ID; // + 1 aux ID - Univers::listeUnivers[universID].second.push_back(this); + total_ID = ID; // + 1 aux ID + Univers::liste_univers[univers_ID].second.push_back(this); } Organisme::~Organisme(void) { @@ -19,14 +19,14 @@ char Organisme::lettre(int id) noexcept { } std::pair> Organisme::position(int id) const noexcept { - return std::make_pair(index, std::make_pair(index / Univers::dimensionsUnivers[id].first, index % Univers::dimensionsUnivers[id].first)); + return std::make_pair(index, std::make_pair(index / Univers::dimensions_univers[id].first, index % Univers::dimensions_univers[id].first)); } int Organisme::recuperationIndexLibre(int universID_p) { - if(Univers::listeUnivers[universID_p].first.size() == 0) // normalement c'est impossible que cette expection apparaisse + if(Univers::liste_univers[universID_p].first.size() == 0) // normalement c'est impossible que cette expection apparaisse throw std::domain_error("Impossible d'attribuer une position à l'organisme."); - int res = Univers::listeUnivers[universID_p].first.back(); - Univers::listeUnivers[universID_p].first.pop_back(); + int res = Univers::liste_univers[universID_p].first.back(); + Univers::liste_univers[universID_p].first.pop_back(); return res; } diff --git a/src/univers.cpp b/src/univers.cpp index 0f6c147..4767130 100644 --- a/src/univers.cpp +++ b/src/univers.cpp @@ -3,39 +3,39 @@ Univers::Univers(int longueur, int largeur): m(longueur), n(largeur), - tailleUnivers(longueur * largeur), + taille_univers(longueur * largeur), tour(0), - ID(totalID + 1) { - totalID = ID; // + 1 aux ID + ID(total_ID + 1) { + total_ID = ID; // + 1 aux ID // On ajoute tous les index possibles car pour l'instant le plateau est vide - for(int i = 0; i < tailleUnivers; i++) - listeUnivers[ID].first.push_back(i); + for(int i = 0; i < taille_univers; i++) + liste_univers[ID].first.push_back(i); // On mélange notre vecteur d'index non occupés - std::random_device nombreAleatoire; - std::default_random_engine graine(nombreAleatoire()); - std::shuffle(listeUnivers[ID].first.begin(), listeUnivers[ID].first.end(), graine); + std::random_device nombre_aleatoire; + std::default_random_engine graine(nombre_aleatoire()); + std::shuffle(liste_univers[ID].first.begin(), liste_univers[ID].first.end(), graine); // Remplie quelques valeurs du tableau avec de l'herbe - while(listeUnivers[ID].first.size() > static_cast(tailleUnivers - tailleUnivers / 2)) { // cast static grâce à "-Wold-style-cast" et "-Wsign-conversion" (syntaxe C++) - new Herbe(ID, listeUnivers[ID].first.back()); - listeUnivers[ID].first.pop_back(); + while(liste_univers[ID].first.size() > static_cast(taille_univers - taille_univers / 2)) { // cast static grâce à "-Wold-style-cast" et "-Wsign-conversion" (syntaxe C++) + new Herbe(ID, liste_univers[ID].first.back()); + liste_univers[ID].first.pop_back(); } // On stocke les dimensions pour chaque univers dans une map - dimensionsUnivers[ID] = std::make_pair(largeur, longueur); + dimensions_univers[ID] = std::make_pair(largeur, longueur); } Univers::~Univers(void) { - for(auto it: listeUnivers[ID].second) + for(auto it: liste_univers[ID].second) delete it; } void Univers::affichage(void) const noexcept { // On génère le plateau pour l'affichage - int * plateau = new int[tailleUnivers](); - for(auto it: listeUnivers[ID].second) + int * plateau = new int[taille_univers](); + for(auto it: liste_univers[ID].second) plateau[it->position(ID).first] = it->ID; for(int i = 0; i < n * 4; i++) @@ -46,7 +46,7 @@ void Univers::affichage(void) const noexcept { std::cout << "┐" << std::endl; // coin supérieur droit std::cout << "│ "; // premier côté gauche - for(int i = 0; i < tailleUnivers; i += n) { + for(int i = 0; i < taille_univers; i += n) { for(int j = 0; j < n; j++) { std::cout << Organisme::lettre(plateau[i + j]); if(j == n - 1) @@ -54,7 +54,7 @@ void Univers::affichage(void) const noexcept { else std::cout << " "; } - if(i != tailleUnivers - n) std::cout << std::endl << "│ "; // saut de ligne et suite du côté gauche + if(i != taille_univers - n) std::cout << std::endl << "│ "; // saut de ligne et suite du côté gauche } std::cout << std::endl; @@ -69,7 +69,7 @@ void Univers::affichage(void) const noexcept { } bool Univers::enVie(void) const noexcept { - for(auto organisme: listeUnivers[ID].second) // on parcours les organismes de notre univers + for(auto organisme: liste_univers[ID].second) // on parcours les organismes de notre univers if(organisme->animal()) // si on a un animal return true; // renvoie true return false; // sinon renvoie false