summaryrefslogtreecommitdiff
path: root/sem_3/Programm/jeu_de_la_vie/arch/population.h
diff options
context:
space:
mode:
authorGaspard Coulet <gaspard.coulet@mines-ales.org>2021-04-28 23:05:53 +0200
committerGaspard Coulet <gaspard.coulet@mines-ales.org>2021-04-28 23:05:53 +0200
commit9fe033ea88c2f705ec18c232873d056e0c229d72 (patch)
tree0647dc8c51610c7336c88c04de2068ea14b21e17 /sem_3/Programm/jeu_de_la_vie/arch/population.h
Initial commit
Diffstat (limited to 'sem_3/Programm/jeu_de_la_vie/arch/population.h')
-rw-r--r--sem_3/Programm/jeu_de_la_vie/arch/population.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/sem_3/Programm/jeu_de_la_vie/arch/population.h b/sem_3/Programm/jeu_de_la_vie/arch/population.h
new file mode 100644
index 0000000..9f5ad98
--- /dev/null
+++ b/sem_3/Programm/jeu_de_la_vie/arch/population.h
@@ -0,0 +1,53 @@
+#ifndef __POPULATION_H
+#define __POPULATION_H
+#include "cellule.h"
+
+#define N 5
+
+class Population {
+
+ private:
+ Cellule T[N][N];
+
+ // retourne le nbr de voisins vivants de la cellule à (i,j)
+ size_t nb_voisins_vivants(size_t, size_t) const;
+
+ //retourne le nbr de cellule d'une couleur donnée
+ size_t nb_cellules(Cellule::Couleur) const;
+
+ // Mise à jour des couleurs des cellules mourantes
+ void updateColors();
+
+ public:
+
+ // constructeur d'une population vide (sur une grille NxN)
+ Population();
+
+ // création de n cellules vivantes aléatoires (uniquement si population vide)
+ void init(size_t);
+
+ // accesseurs en interrogation
+ size_t nb_vivants() const;
+ size_t nb_deces() const;
+ size_t nb_morts() const;
+ size_t nb_naissances() const;
+
+ // accesseurs en lecture d'une cellule
+ Cellule getCelluleCopie(size_t i, size_t j) const;
+ const Cellule& getCellule(size_t i, size_t j) const;
+
+ // accesseurs en modification
+ void kill(size_t i, size_t j);
+ void birth(size_t i, size_t j);
+
+ // affichage d'une cellule
+ void printCell(size_t i, size_t j) const;
+ // affichage de la population
+ void print() const;
+
+ // calcul de la population suivante
+ Population next() const;
+
+};
+
+#endif