From 9fe033ea88c2f705ec18c232873d056e0c229d72 Mon Sep 17 00:00:00 2001 From: Gaspard Coulet Date: Wed, 28 Apr 2021 23:05:53 +0200 Subject: Initial commit --- sem_3/Programm/jeu_de_la_vie/arch/population.h | 53 ++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 sem_3/Programm/jeu_de_la_vie/arch/population.h (limited to 'sem_3/Programm/jeu_de_la_vie/arch/population.h') 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 -- cgit v1.2.3