2022-05-02 12:56:32 +02:00
|
|
|
---
|
|
|
|
controlsLayout: edges
|
|
|
|
---
|
|
|
|
# Écosystème
|
|
|
|
> Anri KENNEL $\cdot$ L2-X
|
|
|
|
---
|
|
|
|
## Relation des classes
|
2022-05-02 16:01:04 +02:00
|
|
|
![schema](img/schema.svg)
|
2022-05-02 12:56:32 +02:00
|
|
|
---
|
|
|
|
## `main.cpp`
|
|
|
|
- Gère les arguments aux programmes
|
|
|
|
- Lance, affiche et arrête la simulation (`Evenement`)
|
|
|
|
|
|
|
|
---
|
|
|
|
## `Evenement`
|
|
|
|
- Créer la simulation (`Univers`)
|
|
|
|
- Ajoute les animaux
|
|
|
|
- Supprime l'univers
|
|
|
|
- Affiche un univers à un instant $t$
|
|
|
|
- Fait vivre l'univers
|
|
|
|
- Appel chaque organisme de l'univers
|
|
|
|
- Ordre: du + rapide au - rapide
|
|
|
|
|
|
|
|
---
|
|
|
|
## `Univers`
|
|
|
|
- ID unique
|
|
|
|
- Stocke
|
|
|
|
- les dimensions de l'univers (`map`)
|
|
|
|
- ID univers correspond aux dimensions
|
|
|
|
- les organismes de l'univers (`map` et `vector`)
|
|
|
|
- ID univers corresponds aux vecteur d'organismes
|
|
|
|
---
|
|
|
|
## `Univers`
|
|
|
|
- Stocke
|
|
|
|
- les cases vides de l'univers (`map`, `pair` et `vector`)
|
|
|
|
- ID univers correspond à une pair de vecteur
|
|
|
|
- l'un pour les animaux (mouton, loup)
|
|
|
|
- l'autre pour les non-animaux (sel, herbe)
|
|
|
|
- Vérifie si l'univers est en vie (`enVie`)
|
|
|
|
- Supprime les organismes mort (`nettoyageMorts`)
|
|
|
|
|
|
|
|
---
|
|
|
|
## `Organisme`
|
|
|
|
- ID unique
|
|
|
|
- Stocke
|
|
|
|
- ID correspond à une lettre pour l'affichage (`map`)
|
|
|
|
- index dans l'univers
|
|
|
|
- ID univers
|
|
|
|
- Peut se supprimer d'un univers (`suppressionVecteurs`)
|
|
|
|
|
|
|
|
---
|
|
|
|
## `Organisme`
|
|
|
|
- `lettre`, exemple, un mouton à la lettre "M"
|
|
|
|
- Peut faire une action
|
|
|
|
- Peut mourir (`mortOrganisme`)
|
|
|
|
- Peut renvoyer la position sous forme
|
|
|
|
- x, y
|
|
|
|
- index
|
|
|
|
- echequier (A4)
|
|
|
|
|
|
|
|
---
|
|
|
|
## `Animal`
|
|
|
|
Dépend de la classe `Organisme`
|
|
|
|
- Stocke
|
|
|
|
- age et age max que l'animal peut atteindre
|
|
|
|
- faim et faim max que l'animal peut supporter
|
|
|
|
- s'il l'animal se reproduit, avec qui ?, cb de temps avant de pouvoir se reproduire ?
|
|
|
|
- genre (masculin, féminin)
|
|
|
|
- vitesse
|
|
|
|
- doit-il poser des sédiment à la mort?
|
|
|
|
|
|
|
|
---
|
|
|
|
## `Animal`
|
|
|
|
- Peut se déplacer
|
|
|
|
- Peut s'accoupler
|
|
|
|
- Regarde les cases aux alentours où il peut aller ou non
|
|
|
|
- S'il est carnivore
|
|
|
|
|
|
|
|
---
|
|
|
|
## `Sel`, `Herbe`, `Mouton`, `Loup`
|
|
|
|
`Sel` et `Herbe` dépendent de la classe `Organisme`
|
|
|
|
`Mouton` et `Loup` dépendent de la classe `Animal`
|
|
|
|
|
|
|
|
Seul le comportement des méthodes virtuelles sont définies dans ses classes.
|