diff --git a/includes/animal.hpp b/includes/animal.hpp index 45ac521..3092eb2 100644 --- a/includes/animal.hpp +++ b/includes/animal.hpp @@ -13,9 +13,9 @@ class Animal: public Organisme { protected: - const int vitesse, age_max; + const int m_vitesse, m_age_max; - int age; + int m_age; // Renvoie une vitesse aléatoire virtual int generationVitesse(void) const noexcept = 0; diff --git a/includes/organisme.hpp b/includes/organisme.hpp index f4827bf..0480f59 100644 --- a/includes/organisme.hpp +++ b/includes/organisme.hpp @@ -4,18 +4,18 @@ #include class Organisme { - inline static int total_ID; // permet d'incrémenter de 1 l'ID de chaque organisme + inline static int m_total_ID; // permet d'incrémenter de 1 l'ID de chaque organisme protected: - const int univers_ID; // stocke l'ID de l'univers où l'organisme est présent + const int m_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 * représenté par une lettre, cette association est * réalisé dans cette map */ - static inline std::map correspondance; + static inline std::map m_correspondance; - int index; // Location dans l'univers + int m_index; // Location dans l'univers public: const int ID; // ID unique pour chaque organisme diff --git a/includes/univers.hpp b/includes/univers.hpp index fe0fb50..3ced00e 100644 --- a/includes/univers.hpp +++ b/includes/univers.hpp @@ -12,17 +12,17 @@ class Univers { friend class Organisme; - const int m, n, taille_univers; // dimensions de l'univers - int tour; // tour + const int m_longueur, m_largeur, m_taille_univers; // dimensions de l'univers + int m_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>> liste_univers; + inline static std::map, std::vector>> m_liste_univers; - inline static std::map> dimensions_univers; // Dimensions de l'univers (largeur, longueur) + inline static std::map> m_dimensions_univers; // Dimensions de l'univers (largeur, longueur) - inline static int total_ID; // s'incrémente à chaque création d'univers + inline static int m_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 0d93d1b..df0d401 100644 --- a/src/animal.cpp +++ b/src/animal.cpp @@ -1,14 +1,14 @@ #include "../includes/animal.hpp" -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 univers_ID, int age_max, int age, int vitesse): Organisme(univers_ID, recuperationIndexLibre(univers_ID)), // position aléatoire + m_vitesse(vitesse), // par des coordonées + m_age_max(age_max), // d'un index de + m_age(age) { } // indexLibres (listeUnivers[ID].first) -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), - age_max(age_max_p), - age(age_p) { } +Animal::Animal(int univers_ID, int index, int age_max, int age, int vitesse): Organisme(univers_ID, index), + m_vitesse(vitesse), + m_age_max(age_max), + m_age(age) { } Animal::~Animal(void) { } diff --git a/src/herbe.cpp b/src/herbe.cpp index cea47b7..8dfabc6 100644 --- a/src/herbe.cpp +++ b/src/herbe.cpp @@ -1,7 +1,7 @@ #include "../includes/herbe.hpp" -Herbe::Herbe(int universID_p, int index_p): Organisme(universID_p, index_p) { - correspondance[ID] = ' '; +Herbe::Herbe(int univers_ID, int index): Organisme(univers_ID, index) { + m_correspondance[ID] = ' '; } bool Herbe::animal(void) const noexcept { diff --git a/src/loup.cpp b/src/loup.cpp index 773609c..b342616 100644 --- a/src/loup.cpp +++ b/src/loup.cpp @@ -1,11 +1,11 @@ #include "../includes/loup.hpp" -Loup::Loup(int universID_p): Animal(universID_p, 60, 0, Loup::generationVitesse()) { - correspondance[ID] = 'L'; +Loup::Loup(int univers_ID): Animal(univers_ID, 60, 0, Loup::generationVitesse()) { + m_correspondance[ID] = 'L'; } -Loup::Loup(int universID_p, int index_p): Animal(universID_p, index_p, 60, 0, Loup::generationVitesse()) { - correspondance[ID] = 'L'; +Loup::Loup(int univers_ID, int index): Animal(univers_ID, index, 60, 0, Loup::generationVitesse()) { + m_correspondance[ID] = 'L'; } Loup::~Loup(void) { } diff --git a/src/mouton.cpp b/src/mouton.cpp index 0c40c1d..98169a8 100644 --- a/src/mouton.cpp +++ b/src/mouton.cpp @@ -1,11 +1,11 @@ #include "../includes/mouton.hpp" -Mouton::Mouton(int universID_p): Animal(universID_p, 50, 0, Mouton::generationVitesse()) { - correspondance[ID] = 'M'; +Mouton::Mouton(int univers_ID): Animal(univers_ID, 50, 0, Mouton::generationVitesse()) { + m_correspondance[ID] = 'M'; } -Mouton::Mouton(int universID_p, int index_p): Animal(universID_p, index_p, 50, 0, Mouton::generationVitesse()) { - correspondance[ID] = 'M'; +Mouton::Mouton(int univers_ID, int index): Animal(univers_ID, index, 50, 0, Mouton::generationVitesse()) { + m_correspondance[ID] = 'M'; } int Mouton::generationVitesse(void) const noexcept { diff --git a/src/organisme.cpp b/src/organisme.cpp index 69e5af2..610fd79 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): 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 +Organisme::Organisme(int universID_p, int index_p): m_univers_ID(universID_p), m_index(index_p), ID(m_total_ID + 1) { + if(Univers::m_liste_univers[m_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."); - total_ID = ID; // + 1 aux ID - Univers::liste_univers[univers_ID].second.push_back(this); + m_total_ID = ID; // + 1 aux ID + Univers::m_liste_univers[m_univers_ID].second.push_back(this); } Organisme::~Organisme(void) { @@ -13,20 +13,20 @@ Organisme::~Organisme(void) { } char Organisme::lettre(int id) noexcept { - if(correspondance[id]) - return correspondance[id]; + if(m_correspondance[id]) + return m_correspondance[id]; return ' '; } std::pair> Organisme::position(int id) const noexcept { - return std::make_pair(index, std::make_pair(index / Univers::dimensions_univers[id].first, index % Univers::dimensions_univers[id].first)); + return std::make_pair(m_index, std::make_pair(m_index / Univers::m_dimensions_univers[id].first, m_index % Univers::m_dimensions_univers[id].first)); } int Organisme::recuperationIndexLibre(int universID_p) { - if(Univers::liste_univers[universID_p].first.size() == 0) // normalement c'est impossible que cette expection apparaisse + if(Univers::m_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::liste_univers[universID_p].first.back(); - Univers::liste_univers[universID_p].first.pop_back(); + int res = Univers::m_liste_univers[universID_p].first.back(); + Univers::m_liste_univers[universID_p].first.pop_back(); return res; } diff --git a/src/sel.cpp b/src/sel.cpp index 9644268..7ebe056 100644 --- a/src/sel.cpp +++ b/src/sel.cpp @@ -1,7 +1,7 @@ #include "../includes/sel.hpp" -Sel::Sel(int universID_p, int index_p): Organisme(universID_p, index_p) { - correspondance[ID] = '-'; +Sel::Sel(int univers_ID, int index): Organisme(univers_ID, index) { + m_correspondance[ID] = '-'; } bool Sel::animal(void) const noexcept { diff --git a/src/univers.cpp b/src/univers.cpp index 4767130..45eca82 100644 --- a/src/univers.cpp +++ b/src/univers.cpp @@ -1,44 +1,44 @@ #include "../includes/univers.hpp" #include "../includes/herbe.hpp" -Univers::Univers(int longueur, int largeur): m(longueur), - n(largeur), - taille_univers(longueur * largeur), - tour(0), - ID(total_ID + 1) { - total_ID = ID; // + 1 aux ID +Univers::Univers(int longueur, int largeur): m_longueur(longueur), + m_largeur(largeur), + m_taille_univers(longueur * largeur), + m_tour(0), + ID(m_total_ID + 1) { + m_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 < taille_univers; i++) - liste_univers[ID].first.push_back(i); + for(int i = 0; i < m_taille_univers; i++) + m_liste_univers[ID].first.push_back(i); // On mélange notre vecteur d'index non occupés 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); + std::shuffle(m_liste_univers[ID].first.begin(), m_liste_univers[ID].first.end(), graine); // Remplie quelques valeurs du tableau avec de l'herbe - 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(); + 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++) + new Herbe(ID, m_liste_univers[ID].first.back()); + m_liste_univers[ID].first.pop_back(); } // On stocke les dimensions pour chaque univers dans une map - dimensions_univers[ID] = std::make_pair(largeur, longueur); + m_dimensions_univers[ID] = std::make_pair(largeur, longueur); } Univers::~Univers(void) { - for(auto it: liste_univers[ID].second) + for(auto it: m_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[taille_univers](); - for(auto it: liste_univers[ID].second) + int * plateau = new int[m_taille_univers](); + for(auto it: m_liste_univers[ID].second) plateau[it->position(ID).first] = it->ID; - for(int i = 0; i < n * 4; i++) + for(int i = 0; i < m_largeur * 4; i++) if(i == 0) std::cout << "┌"; // coin supérieur gauche else @@ -46,19 +46,19 @@ 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 < taille_univers; i += n) { - for(int j = 0; j < n; j++) { + for(int i = 0; i < m_taille_univers; i += m_largeur) { + for(int j = 0; j < m_largeur; j++) { std::cout << Organisme::lettre(plateau[i + j]); - if(j == n - 1) + if(j == m_largeur - 1) std::cout << " │ "; // côté droit else std::cout << " "; } - if(i != taille_univers - n) std::cout << std::endl << "│ "; // saut de ligne et suite du côté gauche + if(i != m_taille_univers - m_largeur) std::cout << std::endl << "│ "; // saut de ligne et suite du côté gauche } std::cout << std::endl; - for(int i = 0; i < n * 4; i++) + for(int i = 0; i < m_largeur * 4; i++) if(i == 0) std::cout << "└"; // coin inférieur gauche else @@ -69,7 +69,7 @@ void Univers::affichage(void) const noexcept { } bool Univers::enVie(void) const noexcept { - for(auto organisme: liste_univers[ID].second) // on parcours les organismes de notre univers + for(auto organisme: m_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