diff options
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.h | 53 |
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 |
