Utilisation de constantes partout

This commit is contained in:
Mylloon 2022-04-05 19:00:40 +02:00
parent 9aac695aa4
commit 1051baf0a3
Signed by: Anri
GPG key ID: A82D63DFF8D1317F
15 changed files with 37 additions and 44 deletions

View file

@ -22,10 +22,10 @@ class Animal: public Organisme {
public: public:
// ID de l'univers, age max, age actuel, vitesse // ID de l'univers, age max, age actuel, vitesse
Animal(int, int, int, int); Animal(const int, const int, const int, const int);
// ID de l'univers, index dans l'univers, age max, age actuel, vitesse // ID de l'univers, index dans l'univers, age max, age actuel, vitesse
Animal(int, int, int, int, int); Animal(const int, const int, const int, const int, const int);
virtual ~Animal(void); virtual ~Animal(void);

View file

@ -6,7 +6,7 @@
class Herbe: public Organisme { class Herbe: public Organisme {
public: public:
// ID de l'univers, index dans l'univers // ID de l'univers, index dans l'univers
Herbe(int, int); Herbe(const int, const int);
// Renvoie faux // Renvoie faux
bool animal(void) const noexcept; bool animal(void) const noexcept;

View file

@ -8,10 +8,10 @@ class Loup: public Animal {
public: public:
// ID de l'univers // ID de l'univers
Loup(int); Loup(const int);
// ID de l'univers, index dans l'univers // ID de l'univers, index dans l'univers
Loup(int, int); Loup(const int, const int);
~Loup(void); ~Loup(void);

View file

@ -8,10 +8,10 @@ class Mouton: public Animal {
public: public:
// ID de l'univers // ID de l'univers
Mouton(int); Mouton(const int);
// ID de l'univers, index dans l'univers // ID de l'univers, index dans l'univers
Mouton(int, int); Mouton(const int, const int);
// Renvoie faux // Renvoie faux
bool carnivore(void) const noexcept; bool carnivore(void) const noexcept;

View file

@ -21,21 +21,21 @@ class Organisme {
const int ID; // ID unique pour chaque organisme const int ID; // ID unique pour chaque organisme
// ID de l'Univers, index dans l'univers // ID de l'Univers, index dans l'univers
Organisme(int, int); Organisme(const int, const int);
virtual ~Organisme(void); virtual ~Organisme(void);
// Renvoie la lettre correspondant à l'ID // Renvoie la lettre correspondant à l'ID
static char lettre(int) noexcept; static char lettre(const int) noexcept;
// Renvoie vrai si l'organisme est un animal // Renvoie vrai si l'organisme est un animal
virtual bool animal(void) const noexcept = 0; virtual bool animal(void) const noexcept = 0;
// Renvoie les positions exact de l'organisme dans l'univers // Renvoie les positions exact de l'organisme dans l'univers
std::pair<int, std::pair<int, int>> position(int) const noexcept; std::pair<int, std::pair<int, int>> position(const int) const noexcept;
// Renvoie un index libre // Renvoie un index libre
int recuperationIndexLibre(int); int recuperationIndexLibre(const int);
}; };
#endif #endif

View file

@ -6,7 +6,7 @@
class Sel: public Organisme { class Sel: public Organisme {
public: public:
// ID de l'univers, index dans l'univers // ID de l'univers, index dans l'univers
Sel(int, int); Sel(const int, const int);
// Renvoie faux // Renvoie faux
bool animal(void) const noexcept; bool animal(void) const noexcept;

View file

@ -27,16 +27,9 @@ class Univers {
public: public:
const int ID; // ID unique pour chaque univers const int ID; // ID unique pour chaque univers
Univers(int, int); Univers(const int, const int);
~Univers(void); ~Univers(void);
// Ajoute des animaux à l'univers
void ajoutAnimaux(std::vector<Animal*>);
/* Modifie un organisme
* Attention, écrase l'organisme précédent */
// void modificationOrganisme(Organisme *, int);
// Affiche l'univers à l'instant présent // Affiche l'univers à l'instant présent
void affichage(void) const noexcept; void affichage(void) const noexcept;

View file

@ -1,14 +1,14 @@
#include "../includes/animal.hpp" #include "../includes/animal.hpp"
Animal::Animal(int univers_ID, int age_max, int age, int vitesse): Organisme(univers_ID, recuperationIndexLibre(univers_ID)), // position aléatoire Animal::Animal(const int univers_ID, const int age_max, const int age, const int vitesse): Organisme(univers_ID, recuperationIndexLibre(univers_ID)), // position aléatoire
m_vitesse(vitesse), // par des coordonées m_vitesse(vitesse), // par des coordonées
m_age_max(age_max), // d'un index de m_age_max(age_max), // d'un index de
m_age(age) { } // indexLibres (listeUnivers[ID].first) m_age(age) { } // indexLibres (listeUnivers[ID].first)
Animal::Animal(int univers_ID, int index, int age_max, int age, int vitesse): Organisme(univers_ID, index), Animal::Animal(const int univers_ID, const int index, const int age_max, const int age, const int vitesse): Organisme(univers_ID, index),
m_vitesse(vitesse), m_vitesse(vitesse),
m_age_max(age_max), m_age_max(age_max),
m_age(age) { } m_age(age) { }
Animal::~Animal(void) { } Animal::~Animal(void) { }

View file

@ -1,6 +1,6 @@
#include "../includes/herbe.hpp" #include "../includes/herbe.hpp"
Herbe::Herbe(int univers_ID, int index): Organisme(univers_ID, index) { Herbe::Herbe(const int univers_ID, const int index): Organisme(univers_ID, index) {
m_correspondance[ID] = ' '; m_correspondance[ID] = ' ';
} }

View file

@ -1,10 +1,10 @@
#include "../includes/loup.hpp" #include "../includes/loup.hpp"
Loup::Loup(int univers_ID): Animal(univers_ID, 60, 0, Loup::generationVitesse()) { Loup::Loup(const int univers_ID): Animal(univers_ID, 60, 0, Loup::generationVitesse()) {
m_correspondance[ID] = 'L'; m_correspondance[ID] = 'L';
} }
Loup::Loup(int univers_ID, int index): Animal(univers_ID, index, 60, 0, Loup::generationVitesse()) { Loup::Loup(const int univers_ID, const int index): Animal(univers_ID, index, 60, 0, Loup::generationVitesse()) {
m_correspondance[ID] = 'L'; m_correspondance[ID] = 'L';
} }

View file

@ -3,7 +3,7 @@
#include "../includes/loup.hpp" #include "../includes/loup.hpp"
// Lance la simulation pour un univers // Lance la simulation pour un univers
void lancerSimulation(Univers ** univers, int m, int n, int nb_moutons, int nb_loups) { void lancerSimulation(Univers ** univers, const int m, const int n, int nb_moutons, int nb_loups) {
*univers = new Univers(m, n); *univers = new Univers(m, n);
while(nb_moutons > 0) { // Création des moutons dans l'univers while(nb_moutons > 0) { // Création des moutons dans l'univers

View file

@ -1,10 +1,10 @@
#include "../includes/mouton.hpp" #include "../includes/mouton.hpp"
Mouton::Mouton(int univers_ID): Animal(univers_ID, 50, 0, Mouton::generationVitesse()) { Mouton::Mouton(const int univers_ID): Animal(univers_ID, 50, 0, Mouton::generationVitesse()) {
m_correspondance[ID] = 'M'; m_correspondance[ID] = 'M';
} }
Mouton::Mouton(int univers_ID, int index): Animal(univers_ID, index, 50, 0, Mouton::generationVitesse()) { Mouton::Mouton(const int univers_ID, const int index): Animal(univers_ID, index, 50, 0, Mouton::generationVitesse()) {
m_correspondance[ID] = 'M'; m_correspondance[ID] = 'M';
} }

View file

@ -1,7 +1,7 @@
#include "../includes/univers.hpp" #include "../includes/univers.hpp"
#include "../includes/organisme.hpp" #include "../includes/organisme.hpp"
Organisme::Organisme(int universID_p, int index_p): m_univers_ID(universID_p), m_index(index_p), ID(m_total_ID + 1) { Organisme::Organisme(const int universID_p, const 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 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."); throw std::domain_error("Trop d'organismes pour l'univers.");
m_total_ID = ID; // + 1 aux ID m_total_ID = ID; // + 1 aux ID
@ -12,17 +12,17 @@ Organisme::~Organisme(void) {
// TODO: rendre son ancienne position de nouveau disponible, re-shuffle après ajout ? // TODO: rendre son ancienne position de nouveau disponible, re-shuffle après ajout ?
} }
char Organisme::lettre(int id) noexcept { char Organisme::lettre(const int id) noexcept {
if(m_correspondance[id]) if(m_correspondance[id])
return m_correspondance[id]; return m_correspondance[id];
return ' '; return ' ';
} }
std::pair<int, std::pair<int, int>> Organisme::position(int id) const noexcept { std::pair<int, std::pair<int, int>> Organisme::position(const int id) const noexcept {
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)); 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) { int Organisme::recuperationIndexLibre(const int universID_p) {
if(Univers::m_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."); throw std::domain_error("Impossible d'attribuer une position à l'organisme.");
int res = Univers::m_liste_univers[universID_p].first.back(); int res = Univers::m_liste_univers[universID_p].first.back();

View file

@ -1,6 +1,6 @@
#include "../includes/sel.hpp" #include "../includes/sel.hpp"
Sel::Sel(int univers_ID, int index): Organisme(univers_ID, index) { Sel::Sel(const int univers_ID, const int index): Organisme(univers_ID, index) {
m_correspondance[ID] = '-'; m_correspondance[ID] = '-';
} }

View file

@ -1,11 +1,11 @@
#include "../includes/univers.hpp" #include "../includes/univers.hpp"
#include "../includes/herbe.hpp" #include "../includes/herbe.hpp"
Univers::Univers(int longueur, int largeur): m_longueur(longueur), Univers::Univers(const int longueur, const int largeur): m_longueur(longueur),
m_largeur(largeur), m_largeur(largeur),
m_taille_univers(longueur * largeur), m_taille_univers(longueur * largeur),
m_tour(0), m_tour(0),
ID(m_total_ID + 1) { ID(m_total_ID + 1) {
m_total_ID = ID; // + 1 aux ID m_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