187 std::optional<std::string>
rule;
279 virtual size_t size()
const = 0;
300 virtual std::string
rule()
const = 0;
556 virtual bool setFromPattern(std::string
const & pattern,
int centerX,
int centerY) = 0;
644 virtual void updateImage(uint32_t * buffer,
size_t buffer_size)
const = 0;
Moteur de simulation d'un automate cellulaire à 2 dimensions.
Definition GOL.h:124
virtual void updateImage(uint32_t *buffer, size_t buffer_size) const =0
Fonction dessinant l'état de la simulation sur une image passée en paramètre.
virtual Color color(State state) const =0
Accesseur retournant la couleur d'un état.
virtual size_t width() const =0
Accesseur retournant la largeur de la grille de simualtion.
virtual void processOneStep()=0
Fonction effectuant une itération de la simulation.
GOL()=default
Constructeur par défaut.
virtual State state(int x, int y) const =0
Accesseur retournant l'état d'une cellule.
virtual std::string rule() const =0
Accesseur retournant la chaîne de caractères correspondant à la règle courante.
virtual void randomize(double percentAlive=0.5)=0
Mutateur remplissant de façon aléatoire toutes les cellules de la grille.
virtual void setBorderManagement(BorderManagement borderManagement)=0
Mutateur modifiant la stratégie de gestion de bord.
virtual size_t height() const =0
Accesseur retournant la hauteur de la grille de simualtion.
uint32_t IterationType
Le type représentant le nombre d'itération de la simulation.
Definition GOL.h:142
virtual ~GOL()=default
Destructeur.
virtual size_t size() const =0
Accesseur retournant le nombre total de cellules de la grille de simualtion.
virtual void fill(State state=State::dead)=0
Mutateur remplissant de façon uniforme toutes les cellules de la grille.
uint8_t ColorChannelType
Le type représentant un canal de couleur.
Definition GOL.h:160
BorderManagement
Le type représentant la stratégie de gestion de bord.
Definition GOL.h:150
@ immutableAsIs
Les cellules du contour ne sont jamais modifiées. Elles sont laissées dans leur état courant.
@ foreverDead
Les cellules du contour ne sont jamais modifiées. Elles sont toujours mortes.
@ foreverAlive
Les cellules du contour ne sont jamais modifiées. Elles sont toujours vivantes.
@ warping
Les cellules du contour sont évaluées. On utilise les cellules du côté opposé de la grille pour les c...
@ mirror
Les cellules du contour sont évaluées. On utilise les cellules du côté opposé de la cellule pour les ...
virtual void setSolidColor(State state, Color const &color)=0
Mutateur modifiant la couleur d'un état.
State
Le type représentant l'état d'une cellule.
Definition GOL.h:135
GOL(size_t width, size_t height, State defaultState=State::dead)
Constructeur d'initialisation personnalisé.
Definition GOL.h:244
virtual Statistics statistics() const =0
Accesseurs retournant des informations générales sur la simulation en cours.
virtual BorderManagement borderManagement() const =0
Accesseur retournant la stratégie courante de gestion des bords.
virtual bool setFromPattern(std::string const &pattern)=0
Mutateur remplissant la grille par le patron passé en argument.
virtual void fillAlternately(State firstCell=State::dead)=0
Mutateur remplissant de façon alternée toutes les cellules de la grille.
virtual void setState(int x, int y, State state)=0
Mutateur modifiant l'état d'une cellule de la grille.
virtual bool setRule(std::string const &rule)=0
Mutateur modifiant la règle de la simulation.
virtual ImplementationInformation information() const =0
Accesseurs retournant les informations sur la réalisation de l'implémentation.
virtual void resize(size_t width, size_t height, State defaultState=State::dead)=0
Mutateur modifiant la taille de la grille de simulation.
virtual bool setFromPattern(std::string const &pattern, int centerX, int centerY)=0
Mutateur remplissant la grille par le patron passé en argument.
Le type représentant les informations permettant d'identifier les auteurs de l'implémentation.
Definition GOL.h:203
std::string lastName
Le nom de famille de l'auteur.
Definition GOL.h:204
std::string firstName
Le prénom de l'auteur.
Definition GOL.h:205
std::string studentEmail
L'adresse courriel de l'auteur. On désire l'adresse courriel étudiante.
Definition GOL.h:206
Le type représentant une couleur.
Definition GOL.h:164
ColorChannelType green
Le canal de couleur verte.
Definition GOL.h:166
ColorChannelType red
Le canal de couleur rouge.
Definition GOL.h:165
ColorChannelType blue
Le canal de couleur bleue.
Definition GOL.h:167
Le type représentant des données statistiques de la simulation.
Definition GOL.h:186
std::optional< size_t > totalDeadAbs
Le nombre total de cellules mortes en valeur absolue.
Definition GOL.h:193
std::optional< float > totalDeadRel
Le nombre total de cellules mortes en valeur relative du nombre total de cellules.
Definition GOL.h:195
std::optional< size_t > width
La largeur de la grille.
Definition GOL.h:189
std::optional< IterationType > iteration
Le nombre d'itération de la simulation.
Definition GOL.h:192
std::optional< size_t > totalCells
Le nombre total de cellules.
Definition GOL.h:191
std::optional< BorderManagement > borderManagement
La stratégie de gestion de bord.
Definition GOL.h:188
std::optional< size_t > totalAliveAbs
Le nombre total de cellules vivantes en valeur absolue.
Definition GOL.h:194
std::optional< size_t > height
La hauteur de la grille.
Definition GOL.h:190
std::optional< std::string > rule
La règle de la simulation exprimé par la chaîne de caractères de format "B###/S###".
Definition GOL.h:187
std::optional< int > tendencyAbs
La tendance de la variation entre le nombre de cellules mortes et vivantes en valeur absolue.
Definition GOL.h:197
std::optional< float > tendencyRel
La tendance de la variation entre le nombre de cellules mortes et vivantes en valeur relative.
Definition GOL.h:198
std::optional< float > totalAliveRel
Le nombre total de cellules vivantes en valeur relative du nombre total de cellules.
Definition GOL.h:196