summaryrefslogtreecommitdiff
path: root/sem_3/Programm/jeu_de_la_vie/cellule.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/cellule.h
Initial commit
Diffstat (limited to 'sem_3/Programm/jeu_de_la_vie/cellule.h')
-rw-r--r--sem_3/Programm/jeu_de_la_vie/cellule.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/sem_3/Programm/jeu_de_la_vie/cellule.h b/sem_3/Programm/jeu_de_la_vie/cellule.h
new file mode 100644
index 0000000..5ad6ef5
--- /dev/null
+++ b/sem_3/Programm/jeu_de_la_vie/cellule.h
@@ -0,0 +1,55 @@
+#ifndef __CELLULE_H
+#define __CELLULE_H
+
+#include <string>
+
+class Cellule {
+ public:
+
+ enum Couleur {
+ NOIR,
+ BLEU,
+ VERT,
+ ROUGE,
+ JAUNE,
+ NB_COULEURS
+ };
+
+ private:
+ size_t age;
+ unsigned int x, y;
+ Couleur couleur;
+
+ public:
+
+ // Constructeurs
+ Cellule(); // morte par défaut
+ Cellule(bool etat, unsigned int x, unsigned int y);
+
+ // Accesseurs en lecture
+ bool getVivante() const;
+ unsigned int getX() const;
+ unsigned int getY() const;
+ Couleur getCouleur() const;
+
+ // Accesseurs en écriture
+ void setX(unsigned int x);
+ void setY(unsigned int y);
+ void setVivante(bool etat);
+
+ // renvoie vrai si la cellule courante est vivante et est voisine de c
+ bool estVoisine(const Cellule &c) const;
+ // affiche la cellule
+ void print() const;
+
+ // spécifie qu'une cellule doit mourir au prochain tour du jeu (-> changement de couleur)
+ void doitMourir();
+};
+
+// Renvoie vrai si la cellule est de la couleur passée en paramètre, faux sinon.
+bool CelluleEstDeLaCouleur(const Cellule &cellule, Cellule::Couleur couleur);
+
+// Retourne la chaîne correspondant à la couleur passée en paramètre
+std::string Couleur2String(Cellule::Couleur c);
+
+#endif