Respect des conventions C++
This commit is contained in:
parent
edfd40332e
commit
05e2ab95cf
6 changed files with 39 additions and 39 deletions
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
class Animal: public Organisme {
|
class Animal: public Organisme {
|
||||||
protected:
|
protected:
|
||||||
const int vitesse, ageMAX;
|
const int vitesse, age_max;
|
||||||
|
|
||||||
int age;
|
int age;
|
||||||
|
|
||||||
|
|
|
@ -4,10 +4,10 @@
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
class Organisme {
|
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:
|
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,
|
/* stocke la table des correspondances,
|
||||||
* chaque organisme possède un ID unique et est
|
* chaque organisme possède un ID unique et est
|
||||||
|
|
|
@ -12,17 +12,17 @@
|
||||||
class Univers {
|
class Univers {
|
||||||
friend class Organisme;
|
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
|
int tour; // tour
|
||||||
|
|
||||||
/* 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)
|
||||||
* - les organismes présent dans l'univers */
|
* - les organismes présent dans l'univers */
|
||||||
inline static std::map<int, std::pair<std::vector<int>, std::vector<Organisme*>>> listeUnivers;
|
inline static std::map<int, std::pair<std::vector<int>, std::vector<Organisme*>>> liste_univers;
|
||||||
|
|
||||||
inline static std::map<int, std::pair<int, int>> dimensionsUnivers; // Dimensions de l'univers (largeur, longueur)
|
inline static std::map<int, std::pair<int, int>> 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:
|
public:
|
||||||
const int ID; // ID unique pour chaque univers
|
const int ID; // ID unique pour chaque univers
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
#include "../includes/animal.hpp"
|
#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
|
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
|
vitesse(vitesse_p), // par des coordonées
|
||||||
ageMAX(ageMax), // d'un index de
|
age_max(age_max_p), // d'un index de
|
||||||
age(age_p) { } // indexLibres (listeUnivers[ID].first)
|
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),
|
vitesse(vitesse_p),
|
||||||
ageMAX(ageMax),
|
age_max(age_max_p),
|
||||||
age(age_p) { }
|
age(age_p) { }
|
||||||
|
|
||||||
Animal::~Animal(void) { }
|
Animal::~Animal(void) { }
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
#include "../includes/univers.hpp"
|
#include "../includes/univers.hpp"
|
||||||
#include "../includes/organisme.hpp"
|
#include "../includes/organisme.hpp"
|
||||||
|
|
||||||
Organisme::Organisme(int universID_p, int index_p): universID(universID_p), index(index_p), ID(totalID + 1) {
|
Organisme::Organisme(int universID_p, int index_p): univers_ID(universID_p), index(index_p), ID(total_ID + 1) {
|
||||||
if(Univers::listeUnivers[universID].first.size() == 0) // si il n'y a plus d'index de libres
|
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.");
|
throw std::domain_error("Trop d'organismes pour l'univers.");
|
||||||
totalID = ID; // + 1 aux ID
|
total_ID = ID; // + 1 aux ID
|
||||||
Univers::listeUnivers[universID].second.push_back(this);
|
Univers::liste_univers[univers_ID].second.push_back(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
Organisme::~Organisme(void) {
|
Organisme::~Organisme(void) {
|
||||||
|
@ -19,14 +19,14 @@ char Organisme::lettre(int id) noexcept {
|
||||||
}
|
}
|
||||||
|
|
||||||
std::pair<int, std::pair<int, int>> Organisme::position(int id) const noexcept {
|
std::pair<int, std::pair<int, int>> 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) {
|
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.");
|
throw std::domain_error("Impossible d'attribuer une position à l'organisme.");
|
||||||
int res = Univers::listeUnivers[universID_p].first.back();
|
int res = Univers::liste_univers[universID_p].first.back();
|
||||||
Univers::listeUnivers[universID_p].first.pop_back();
|
Univers::liste_univers[universID_p].first.pop_back();
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,39 +3,39 @@
|
||||||
|
|
||||||
Univers::Univers(int longueur, int largeur): m(longueur),
|
Univers::Univers(int longueur, int largeur): m(longueur),
|
||||||
n(largeur),
|
n(largeur),
|
||||||
tailleUnivers(longueur * largeur),
|
taille_univers(longueur * largeur),
|
||||||
tour(0),
|
tour(0),
|
||||||
ID(totalID + 1) {
|
ID(total_ID + 1) {
|
||||||
totalID = ID; // + 1 aux ID
|
total_ID = ID; // + 1 aux ID
|
||||||
|
|
||||||
// On ajoute tous les index possibles car pour l'instant le plateau est vide
|
// On ajoute tous les index possibles car pour l'instant le plateau est vide
|
||||||
for(int i = 0; i < tailleUnivers; i++)
|
for(int i = 0; i < taille_univers; i++)
|
||||||
listeUnivers[ID].first.push_back(i);
|
liste_univers[ID].first.push_back(i);
|
||||||
|
|
||||||
// On mélange notre vecteur d'index non occupés
|
// On mélange notre vecteur d'index non occupés
|
||||||
std::random_device nombreAleatoire;
|
std::random_device nombre_aleatoire;
|
||||||
std::default_random_engine graine(nombreAleatoire());
|
std::default_random_engine graine(nombre_aleatoire());
|
||||||
std::shuffle(listeUnivers[ID].first.begin(), listeUnivers[ID].first.end(), graine);
|
std::shuffle(liste_univers[ID].first.begin(), 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(listeUnivers[ID].first.size() > static_cast<uint64_t>(tailleUnivers - tailleUnivers / 2)) { // cast static grâce à "-Wold-style-cast" et "-Wsign-conversion" (syntaxe C++)
|
while(liste_univers[ID].first.size() > static_cast<uint64_t>(taille_univers - taille_univers / 2)) { // cast static grâce à "-Wold-style-cast" et "-Wsign-conversion" (syntaxe C++)
|
||||||
new Herbe(ID, listeUnivers[ID].first.back());
|
new Herbe(ID, liste_univers[ID].first.back());
|
||||||
listeUnivers[ID].first.pop_back();
|
liste_univers[ID].first.pop_back();
|
||||||
}
|
}
|
||||||
|
|
||||||
// On stocke les dimensions pour chaque univers dans une map
|
// 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) {
|
Univers::~Univers(void) {
|
||||||
for(auto it: listeUnivers[ID].second)
|
for(auto it: liste_univers[ID].second)
|
||||||
delete it;
|
delete it;
|
||||||
}
|
}
|
||||||
|
|
||||||
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[tailleUnivers]();
|
int * plateau = new int[taille_univers]();
|
||||||
for(auto it: listeUnivers[ID].second)
|
for(auto it: liste_univers[ID].second)
|
||||||
plateau[it->position(ID).first] = it->ID;
|
plateau[it->position(ID).first] = it->ID;
|
||||||
|
|
||||||
for(int i = 0; i < n * 4; i++)
|
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 << "┐" << std::endl; // coin supérieur droit
|
||||||
|
|
||||||
std::cout << "│ "; // premier côté gauche
|
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++) {
|
for(int j = 0; j < n; j++) {
|
||||||
std::cout << Organisme::lettre(plateau[i + j]);
|
std::cout << Organisme::lettre(plateau[i + j]);
|
||||||
if(j == n - 1)
|
if(j == n - 1)
|
||||||
|
@ -54,7 +54,7 @@ void Univers::affichage(void) const noexcept {
|
||||||
else
|
else
|
||||||
std::cout << " ";
|
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;
|
std::cout << std::endl;
|
||||||
|
@ -69,7 +69,7 @@ void Univers::affichage(void) const noexcept {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Univers::enVie(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
|
if(organisme->animal()) // si on a un animal
|
||||||
return true; // renvoie true
|
return true; // renvoie true
|
||||||
return false; // sinon renvoie false
|
return false; // sinon renvoie false
|
||||||
|
|
Reference in a new issue