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.
Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | Friends | List of all members
Entite Class Referenceabstract

Une Entite est composée d'une liste de Case et interragira lors de la simulation. More...

#include <Entite.h>

Inheritance diagram for Entite:
Inheritance graph
Collaboration diagram for Entite:
Collaboration graph

Public Member Functions

 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 std::string type () const
 Renvoie le type de l'Entite, "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 void write_stats (std::ofstream &os) const
 Ecrit les statistiques instantanées dans un flux de fichier, par défaut id,time. More...
 
virtual std::string to_string () const
 Convertit la map en un string comme la disposition de ses cases marqués par une *. More...
 
virtual void show (Screen s)
 Affiche l'entite sur un screen, en une variation de noir dépendante de son _id. More...
 
virtual void step (Map &m, const std::map< int, Entite * > &corr)=0
 

Protected Member Functions

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

int _id
 identifiant unique de l'entité More...
 
int time
 Nombre de steps qui ont été exécutés. More...
 
std::list< Casecases
 Liste des Case de l'entité More...
 
Map map
 La Map correspondante à la liste de ses cases. More...
 

Static Protected Attributes

static int cpt = 1
 Le compteur d'entités. More...
 

Friends

std::ostream & operator<< (std::ostream &os, const Entite &e)
 Affiche un sur un flux, de même manière que to_string() More...
 
std::list< int > indices_of_type (std::string type, const std::map< int, Entite * > corr)
 Retourne les indices des entites de type type dans la map corr. More...
 
std::list< int > indices_hostiles (const std::map< int, Entite * > corr)
 Retourne les indices des entites hostiles dans la map corr. More...
 
std::list< Entite * > entites_of_type (std::string type, const std::map< int, Entite * > corr)
 Retourne les entites de type type dans la map corr. More...
 
std::list< Entite * > entites_hostiles (const std::map< int, Entite * > corr)
 Retourne les entites hostiles dans la map corr. More...
 
float dist_min (const Case &c, const Entite *e)
 Distance avec la case de e la plus proche de c. More...
 
float dist_min (const Entite *a, const Entite *b)
 Distance entre les deux cases les plus proches de a et de b. More...
 
float dist_min (const Case &c, const std::list< Entite * > &l)
 
float dist_min (const Entite *e, const std::list< Entite * > &l)
 
float dist_min (const Case &c, std::string type, const std::map< int, Entite * > corr)
 Distance minimale de la case avec une Entite de type type. More...
 
float dist_min (const Entite *c, std::string type, const std::map< int, Entite * > corr)
 Distance minimale de l'entite avec une Entite de type type. More...
 
bool touch (const Entite *a, const Entite *b)
 Indique si une entite en trouche une autre. More...
 
bool touch (const Entite *a, const std::list< Entite * > &l)
 Indique si une entite en trouche une autre dans la liste passée. More...
 

Detailed Description

Une Entite est composée d'une liste de Case et interragira lors de la simulation.

Une entité est composée d'une liste de Case qui variera au cours de la simulation. Chaque tour, la fonction step définit son comportement.

Constructor & Destructor Documentation

Entite::Entite ( std::string  filename)
inline

Initialise l'Entite avec un fichier (* si case pleine) avec xmin,ymin = 0,0.

Entite::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.

  • On transforme le fichier en liste de Case et on initialise la Map
Entite::Entite ( )
inline

Entite vide.

Entite::Entite ( std::list< Case l,
Map m 
)
inline

Initialise l'Entite en ajoutant la liste de Case à une Map.

virtual Entite::~Entite ( )
inlinevirtual

Pour bien vérifier leur destruction.

Member Function Documentation

virtual bool Entite::active ( )
inlinevirtual

Insique si l'Entite est toujours active, par défaut si elle contient encore des cases.

Reimplemented in Esquive_vie.

void Entite::add_case ( int  x,
int  y 
)
protectedvirtual

Ajoute une Case à l'Entite avec ses coordonnées.

void Entite::add_case ( const Case c)
protectedvirtual

Ajoute une Case à l'Entite.

void Entite::add_case ( const std::list< Case > &  c)
protectedvirtual

Ajoute une Case à l'Entite avec ses coordonnées.

void Entite::add_case ( const std::list< Case > &  c,
Map ext 
)
virtual

A UTILISER : Ajoute une liste de Case à l'entite et une Map extérieure.

  • Ajoute les cases à la liste
  • Tente d'ajouter les cases à la map extérieure
  • Met à jour sa propre map
void Entite::clear_it ( Map ext)
virtual

A UTILISER : Enlève toutes les cases de l'Entite, sur une carte extéreure.

const std::list<Case>& Entite::get_cases ( ) const
inline

Renvoie toutes les cases détenues par l'entite.

virtual bool Entite::hostile ( ) const
inlinevirtual

Renvoie si l'entite est hostile, false par défaut.

Reimplemented in Fumee_test, Projectile, and Mur.

int Entite::id ( )
inline

Renvoie l'id de l'Entite.

size_t Entite::nb_cases ( ) const
inline

Nombre de cases de l'Entite.

void Entite::remove_case ( const Case c)
protectedvirtual

Suprime une liste de Case de l'Entite.

void Entite::remove_case ( const std::list< Case > &  l)
protectedvirtual

Suprime une Case de l'Entite.

void Entite::remove_case ( const std::list< Case > &  l,
Map ext 
)
virtual

A UTILISER : Suprime une Case de l'Entite et d'une Map extérieure.

  • Retire les cases de la liste
  • Tente de retirer les cases de la map extérieure
  • Met à jour sa propre map
void Entite::set_map ( )
protectedvirtual

Met à jour sa carte 2D à l'aide des sa liste de cases et de ses bordures.

virtual void Entite::show ( Screen  s)
inlinevirtual

Affiche l'entite sur un screen, en une variation de noir dépendante de son _id.

Reimplemented in Fumee_esquive, Projectile, Fumee_test, Mystherbe, Esquive_vie, and Mur.

virtual void Entite::step ( Map m,
const std::map< int, Entite * > &  corr 
)
pure virtual

Fait avancer la fumée d'un pas

Parameters
mMap sur laquelle interragit l'entite.
corrDictionnaire des entiers de la map et des Entite correspondantes

Implemented in Projectile, Fumee_test, Fumee_esquive, Mystherbe, Esquive_vie, and Mur.

std::string Entite::to_string ( ) const
virtual

Convertit la map en un string comme la disposition de ses cases marqués par une *.

virtual std::string Entite::type ( ) const
inlinevirtual

Renvoie le type de l'Entite, "ENTITE".

Reimplemented in Projectile, Fumee_esquive, Mystherbe, and Vivante.

virtual void Entite::write_stats ( std::ofstream &  os) const
inlinevirtual

Ecrit les statistiques instantanées dans un flux de fichier, par défaut id,time.

Reimplemented in Fumee_esquive, and Mystherbe.

Friends And Related Function Documentation

float dist_min ( const Case c,
const Entite e 
)
friend

Distance avec la case de e la plus proche de c.

– Complexité e.cases

  • Pour chaque case de l'Entite : tester si c'est la distance minimale
  • Renvoyer celle-ci
float dist_min ( const Entite a,
const Entite b 
)
friend

Distance entre les deux cases les plus proches de a et de b.

– Complexité a.cases*b.cases

  • Pour chaque case de la permière Entite : tester si c'est la distance minimale avec l'autre
  • Renvoyer celle-ci
float dist_min ( const Case c,
const std::list< Entite * > &  l 
)
friend

– Complexité : nombre de cases de la liste

  • Pour chaque Entite la liste l : tester si c'est la distance minimale avec la case
  • Retourner celle-ci
float dist_min ( const Entite e,
const std::list< Entite * > &  l 
)
friend

– Complexité e.cases*(nombre de cases de la liste)

  • Pour chaque case de la première Entite : tester si c'est la distance minimale avec la liste
  • Renvoyer celle-ci
float dist_min ( const Case c,
std::string  type,
const std::map< int, Entite * >  corr 
)
friend

Distance minimale de la case avec une Entite de type type.

float dist_min ( const Entite c,
std::string  type,
const std::map< int, Entite * >  corr 
)
friend

Distance minimale de l'entite avec une Entite de type type.

std::list<Entite*> entites_hostiles ( const std::map< int, Entite * >  corr)
friend

Retourne les entites hostiles dans la map corr.

std::list<Entite*> entites_of_type ( std::string  type,
const std::map< int, Entite * >  corr 
)
friend

Retourne les entites de type type dans la map corr.

std::list<int> indices_hostiles ( const std::map< int, Entite * >  corr)
friend

Retourne les indices des entites hostiles dans la map corr.

std::list<int> indices_of_type ( std::string  type,
const std::map< int, Entite * >  corr 
)
friend

Retourne les indices des entites de type type dans la map corr.

std::ostream& operator<< ( std::ostream &  os,
const Entite e 
)
friend

Affiche un sur un flux, de même manière que to_string()

bool touch ( const Entite a,
const Entite b 
)
friend

Indique si une entite en trouche une autre.

bool touch ( const Entite a,
const std::list< Entite * > &  l 
)
friend

Indique si une entite en trouche une autre dans la liste passée.

Member Data Documentation

int Entite::_id
protected

identifiant unique de l'entité

std::list<Case> Entite::cases
protected

Liste des Case de l'entité

int Entite::cpt = 1
staticprotected

Le compteur d'entités.

Map Entite::map
protected

La Map correspondante à la liste de ses cases.

int Entite::time
protected

Nombre de steps qui ont été exécutés.


The documentation for this class was generated from the following files: