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 | Friends | List of all members
Jeu Class Reference

La classe Jeu s'occupe de contrôler la simulation. More...

#include <Jeu.h>

Inheritance diagram for Jeu:
Inheritance graph
Collaboration diagram for Jeu:
Collaboration graph

Public Member Functions

 Jeu ()
 Constructeur par défaut. More...
 
 Jeu (const Case &min, const Case &max)
 Constructeur avec limites. More...
 
 Jeu (Map &m)
 Constructeur avec limites. More...
 
 ~Jeu ()
 Détruit toutes les fumées du jeu aussi ! More...
 
bool add_entite (Entite *e)
 Ajoute une Entite dans le Jeu, si elle n'y est pas déjà More...
 
bool add_vivante (Vivante *v)
 Ajoute une entité Vivante dans le Jeu, si elle n'y est pas déjà More...
 
bool rm_entite (Entite *e)
 Retire une Entite du Jeu, si elle est effectivement là More...
 
bool rm_vivante (Vivante *v)
 Retire une entité Vivante du Jeu, si elle est effectivement là More...
 
bool sim (std::string stats="../stats/stats.csv")
 Lance une simulation retourne vrai si restart. More...
 
virtual void begin_stats (std::string filename)
 Crée un fichier de statistiques et l'ouvre. More...
 
virtual void write_stats ()
 Ecrit les tatistiques de l'instant. More...
 
virtual void end_stats ()
 Ferme le fichier des statistiques. More...
 
virtual void show (Screen s) const
 Affiche le Jeu sur un Screen. More...
 

Protected Member Functions

bool add_on_map (const std::list< Case > &liste, int id)
 Tente d'ajouter une liste de Case avec l'id sur la carte. More...
 
bool rm_of_map (const std::list< Case > &liste)
 Tente de vider une liste de Case de la carte. More...
 
bool add_on_map (Entite *e)
 Tente d'ajouter une entité sur la carte. More...
 
bool rm_of_map (Entite *e)
 Tente de retirer une entité de la carte. More...
 
virtual void step_entite (Entite *e)
 Fais avancer une entité d'un pas. More...
 
virtual void step_vivante (Vivante *v)
 Fais avancer une vivante d'un pas. More...
 
void step_all_entites ()
 Avance toutes les entites d'un pas. More...
 
void step_all_vivantes ()
 Avance toutes les vivantes d'un pas. More...
 
void step ()
 Avance tout d'un pas. More...
 
virtual bool allow_reproduction ()
 Autoriser la reproduction, par défaut il faut qu'il y ait moins de 10 Fumées Vivantes. More...
 

Protected Attributes

size_t cpt
 Compteur de steps. More...
 
Map map
 La carte des Entite présentes, représentées sous forme d'entiers. More...
 
std::list< Vivante * > vivantes
 Ensemble des entités Vivante du jeu. More...
 
std::list< Entite * > env
 Ensemble des entités non vivantes du jeu, l'environnement. More...
 
std::map< int, Entite * > corr
 La correspondance entre chaque Entite présente dans le Jeu son identifiant entier. More...
 
std::ofstream stats
 Flux de fichier dans lequel le jeu écrit des statistiques à chaque step. More...
 

Friends

std::ostream & operator<< (std::ostream &os, const Jeu &j)
 Affiche le jeu dans le terminal. More...
 

Detailed Description

La classe Jeu s'occupe de contrôler la simulation.

La classe Jeu s'occupe de contrôler la simulation. Elle contient un ensemble d'Entite et la Map, et s'occupe par la fonction sim() de lancer la simulation. Le Jeu gère alors son fonctionnement et son affichage sur un Screen.

Constructor & Destructor Documentation

Jeu::Jeu ( )
inline

Constructeur par défaut.

Jeu::Jeu ( const Case min,
const Case max 
)
inline

Constructeur avec limites.

Jeu::Jeu ( Map m)
inline

Constructeur avec limites.

Jeu::~Jeu ( )

Détruit toutes les fumées du jeu aussi !

Member Function Documentation

bool Jeu::add_entite ( Entite e)

Ajoute une Entite dans le Jeu, si elle n'y est pas déjà

bool Jeu::add_on_map ( const std::list< Case > &  liste,
int  id 
)
protected

Tente d'ajouter une liste de Case avec l'id sur la carte.

bool Jeu::add_on_map ( Entite e)
protected

Tente d'ajouter une entité sur la carte.

bool Jeu::add_vivante ( Vivante v)

Ajoute une entité Vivante dans le Jeu, si elle n'y est pas déjà

virtual bool Jeu::allow_reproduction ( )
inlineprotectedvirtual

Autoriser la reproduction, par défaut il faut qu'il y ait moins de 10 Fumées Vivantes.

Reimplemented in ProjectileGame.

void Jeu::begin_stats ( std::string  filename)
virtual

Crée un fichier de statistiques et l'ouvre.

Reimplemented in StandartGame.

void Jeu::end_stats ( )
virtual

Ferme le fichier des statistiques.

bool Jeu::rm_entite ( Entite e)

Retire une Entite du Jeu, si elle est effectivement là

  • Si on a pu le supprimer de la carte des correspondances
  • . On l'enlève de la liste des env et de la carte
bool Jeu::rm_of_map ( const std::list< Case > &  liste)
protected

Tente de vider une liste de Case de la carte.

bool Jeu::rm_of_map ( Entite e)
protected

Tente de retirer une entité de la carte.

bool Jeu::rm_vivante ( Vivante v)

Retire une entité Vivante du Jeu, si elle est effectivement là

  • Si on a pu le supprimer de la carte des correspondances
  • . On l'enlève de la liste des vivantes et de la carte
void Jeu::show ( Screen  s) const
virtual

Affiche le Jeu sur un Screen.

bool Jeu::sim ( std::string  stats = "../stats/stats.csv")

Lance une simulation retourne vrai si restart.

Parameters
stats"chemin vers le fichier de statistiques à remplir, par défaut ../stats/stats.csv"
  • Inititalise l'écran et le fichier stats
  • Tant que l'on ne quitte ou restart pas :
  • . step, afficher, écrire les statistiques
void Jeu::step ( )
protected

Avance tout d'un pas.

void Jeu::step_all_entites ( )
protected

Avance toutes les entites d'un pas.

  • Etablir la liste des env à supprimer
  • Les supprimer
void Jeu::step_all_vivantes ( )
protected

Avance toutes les vivantes d'un pas.

  • Etablir la liste des vivantes à ajouter et supprimer
  • Les supprimer
  • Les ajouter
void Jeu::step_entite ( Entite e)
protectedvirtual

Fais avancer une entité d'un pas.

void Jeu::step_vivante ( Vivante v)
protectedvirtual

Fais avancer une vivante d'un pas.

void Jeu::write_stats ( )
virtual

Ecrit les tatistiques de l'instant.

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const Jeu j 
)
friend

Affiche le jeu dans le terminal.

Member Data Documentation

std::map<int,Entite*> Jeu::corr
protected

La correspondance entre chaque Entite présente dans le Jeu son identifiant entier.

size_t Jeu::cpt
protected

Compteur de steps.

std::list<Entite*> Jeu::env
protected

Ensemble des entités non vivantes du jeu, l'environnement.

Map Jeu::map
protected

La carte des Entite présentes, représentées sous forme d'entiers.

std::ofstream Jeu::stats
protected

Flux de fichier dans lequel le jeu écrit des statistiques à chaque step.

std::list<Vivante*> Jeu::vivantes
protected

Ensemble des entités Vivante du jeu.


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