From 55a5a3aea1a3754b301dad8ebbfce58211aa18c9 Mon Sep 17 00:00:00 2001 From: Mylloon Date: Tue, 5 Apr 2022 19:08:03 +0200 Subject: [PATCH] =?UTF-8?q?Ajout=20des=20accolades=20l=C3=A0=20o=C3=B9=20i?= =?UTF-8?q?l=20n'y=20en=20a=20pas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/organisme.cpp | 10 +++++++--- src/univers.cpp | 40 ++++++++++++++++++++++++++-------------- 2 files changed, 33 insertions(+), 17 deletions(-) diff --git a/src/organisme.cpp b/src/organisme.cpp index 71f8f82..d9eb4d5 100644 --- a/src/organisme.cpp +++ b/src/organisme.cpp @@ -2,8 +2,9 @@ #include "../includes/organisme.hpp" 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."); + } m_total_ID = ID; // + 1 aux ID Univers::m_liste_univers[m_univers_ID].second.push_back(this); } @@ -13,8 +14,10 @@ Organisme::~Organisme(void) { } char Organisme::lettre(const int id) noexcept { - if(m_correspondance[id]) + if(m_correspondance[id]) { return m_correspondance[id]; + } + return ' '; } @@ -23,8 +26,9 @@ std::pair> Organisme::position(const int id) const noex } 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."); + } int res = Univers::m_liste_univers[universID_p].first.back(); Univers::m_liste_univers[universID_p].first.pop_back(); diff --git a/src/univers.cpp b/src/univers.cpp index de747e9..402851e 100644 --- a/src/univers.cpp +++ b/src/univers.cpp @@ -9,8 +9,9 @@ Univers::Univers(const int longueur, const int largeur): m_longueur(longueur), 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 < m_taille_univers; ++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; @@ -28,49 +29,60 @@ Univers::Univers(const int longueur, const int largeur): m_longueur(longueur), } Univers::~Univers(void) { - for(auto it: m_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[m_taille_univers](); - for(auto it: m_liste_univers[ID].second) + for(auto it: m_liste_univers[ID].second) { plateau[it->position(ID).first] = it->ID; + } - for(int i = 0; i < m_largeur * 4; ++i) - if(i == 0) + for(int i = 0; i < m_largeur * 4; ++i) { + if(i == 0) { std::cout << "┌"; // coin supérieur gauche - else + } else { std::cout << "─"; // haut + } + } std::cout << "┐" << std::endl; // coin supérieur droit std::cout << "│ "; // premier côté gauche 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 == m_largeur - 1) + if(j == m_largeur - 1) { std::cout << " │ "; // côté droit - else + } else { std::cout << " "; + } + } + if(i != m_taille_univers - m_largeur) { + 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 < m_largeur * 4; ++i) - if(i == 0) + for(int i = 0; i < m_largeur * 4; ++i) { + if(i == 0) { std::cout << "└"; // coin inférieur gauche - else + } else { std::cout << "─"; // bas + } + } std::cout << "┘" << std::endl; // coin inférieur droit delete[] plateau; } bool Univers::enVie(void) const noexcept { - for(auto organisme: m_liste_univers[ID].second) // on parcours les organismes de notre univers - if(organisme->animal()) // si on a un animal + 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 }