Darwinian Smoke
1
Une simulation de fumées vivantes disposant de comportements variables et d'un transmission héréditaire de ceux-ci, qui sont soumis à la sélection naturelle dans un environnement hostile.
|
Une fumée Vivante qui meurt si elle rencontre une Entite Hostile du Jeu, et dont le comportement est conçu pour les fuir. More...
#include <Fumee_esquive.h>
Public Member Functions | |
Fumee_esquive () | |
Construit tous ses attributs de manière aléatoire (bornes arbitraires) More... | |
Fumee_esquive (size_t t_min, size_t t_max, size_t NB_ADD, size_t NB_RM, size_t mutateur) | |
Constructeur prenant dans l'ordre : t_min,t_max,NB_ADD,NB_RM,mutateur. More... | |
void | step (Map &ext, const std::map< int, Entite * > &corr) |
Avance d'un pas, appelle la fonction step2. More... | |
std::string | type () const |
Le type d'une Fumee_esquive est "ESQUIVE". More... | |
bool | should_greed (const Map &ext, const std::map< int, Entite * > &corr) const |
Si on est assez loin des projectiles, on a plus de chance de se reproduire. More... | |
std::list< Vivante * > | get_children (Map &ext, const std::map< int, Entite * > &corr) const |
Crée 1 enfant avec une position aléatoire et des attributs mutés. More... | |
virtual void | write_stats (std::ofstream &os) const |
Écrit ses caractéristiques (attributs) dans un flux de fichier. More... | |
Public Member Functions inherited from Vivante | |
Vivante (std::string filename) | |
Toutes les cases en * sont lues. More... | |
Vivante (std::string filename, int x_min, int y_min) | |
Toutes les cases en * sont lues. More... | |
Vivante () | |
Vivante vide. More... | |
Public Member Functions inherited from Entite | |
Entite (std::string filename) | |
Initialise l'Entite avec un fichier (* si case pleine) avec xmin,ymin = 0,0. More... | |
Entite (std::string filename, int x_min, int y_min) | |
Initialise l'Entite avec un fichier (* si case pleine) et les valeurs xmin et ymin. More... | |
Entite () | |
Entite vide. More... | |
Entite (std::list< Case > l, Map &m) | |
Initialise l'Entite en ajoutant la liste de Case à une Map. More... | |
virtual | ~Entite () |
Pour bien vérifier leur destruction. More... | |
size_t | nb_cases () const |
Nombre de cases de l'Entite. More... | |
int | id () |
Renvoie l'id de l'Entite. More... | |
virtual bool | active () |
Insique si l'Entite est toujours active, par défaut si elle contient encore des cases. More... | |
const std::list< Case > & | get_cases () const |
Renvoie toutes les cases détenues par l'entite. More... | |
virtual bool | hostile () const |
Renvoie si l'entite est hostile, false par défaut. More... | |
virtual void | remove_case (const std::list< Case > &l, Map &ext) |
A UTILISER : Suprime une Case de l'Entite et d'une Map extérieure. More... | |
virtual void | add_case (const std::list< Case > &c, Map &ext) |
A UTILISER : Ajoute une liste de Case à l'entite et une Map extérieure. More... | |
virtual void | clear_it (Map &ext) |
A UTILISER : Enlève toutes les cases de l'Entite, sur une carte extéreure. More... | |
virtual std::string | to_string () const |
Convertit la map en un string comme la disposition de ses cases marqués par une *. More... | |
Protected Member Functions | |
size_t | muter (size_t arg) const |
Mute un truc. More... | |
std::vector< size_t > | muter (std::vector< size_t >) const |
Mute un vector. More... | |
void | step_add (Map &ext, std::map< int, Entite * > corr, const std::list< Entite * > &projectiles) |
Etape d'ajout des cases du step. More... | |
void | step_remove (Map &ext, std::map< int, Entite * > corr, const std::list< Entite * > &projectiles) |
Etape de suppression des cases du step. More... | |
void | show (Screen s) |
S'affiche en variation de violet à turquoise. More... | |
Protected Member Functions inherited from Entite | |
virtual void | add_case (int x, int y) |
Ajoute une Case à l'Entite avec ses coordonnées. More... | |
virtual void | add_case (const Case &c) |
Ajoute une Case à l'Entite. More... | |
virtual void | add_case (const std::list< Case > &c) |
Ajoute une Case à l'Entite avec ses coordonnées. More... | |
virtual void | remove_case (const Case &c) |
Suprime une liste de Case de l'Entite. More... | |
virtual void | remove_case (const std::list< Case > &l) |
Suprime une Case de l'Entite. More... | |
virtual void | set_map () |
Met à jour sa carte 2D à l'aide des sa liste de cases et de ses bordures. More... | |
Protected Attributes | |
size_t | t_min |
La taille minimale autorisée (ne peut pas rétrécir en dessous) More... | |
size_t | t_max |
La taille maximale autorisée (ne peut pas grandir au dessus) More... | |
size_t | NB_ADD |
Nombre de cases à ajouter chaque step. More... | |
size_t | NB_RM |
Nombre de cases à retirer chaque step. More... | |
size_t | mutateur |
De quel pourcentage muter (Non opérationnel dans cette version) More... | |
Protected Attributes inherited from Entite | |
int | _id |
identifiant unique de l'entité More... | |
int | time |
Nombre de steps qui ont été exécutés. More... | |
std::list< Case > | cases |
Liste des Case de l'entité More... | |
Map | map |
La Map correspondante à la liste de ses cases. More... | |
Additional Inherited Members | |
Static Protected Attributes inherited from Entite | |
static int | cpt = 1 |
Le compteur d'entités. More... | |
Une fumée Vivante qui meurt si elle rencontre une Entite Hostile du Jeu, et dont le comportement est conçu pour les fuir.
Fumee_esquive::Fumee_esquive | ( | ) |
Construit tous ses attributs de manière aléatoire (bornes arbitraires)
Un Constructeur par défaut avec des valeurs arbitraires, non utilisé dans les simulation.
|
inline |
Constructeur prenant dans l'ordre : t_min,t_max,NB_ADD,NB_RM,mutateur.
|
protected |
Mute un truc.
|
protected |
Mute un vector.
|
virtual |
Si on est assez loin des projectiles, on a plus de chance de se reproduire.
Reimplemented from Vivante.
|
protectedvirtual |
S'affiche en variation de violet à turquoise.
Reimplemented from Entite.
Avance d'un pas, appelle la fonction step2.
Implements Entite.
|
protected |
Etape d'ajout des cases du step.
Ajouter les meileures cases
|
protected |
Etape de suppression des cases du step.
Retirer les pires cases
|
inlinevirtual |
|
inlinevirtual |
Écrit ses caractéristiques (attributs) dans un flux de fichier.
Reimplemented from Entite.
|
protected |
De quel pourcentage muter (Non opérationnel dans cette version)
|
protected |
Nombre de cases à ajouter chaque step.
|
protected |
Nombre de cases à retirer chaque step.
|
protected |
La taille maximale autorisée (ne peut pas grandir au dessus)
|
protected |
La taille minimale autorisée (ne peut pas rétrécir en dessous)