ajout projet wator
This commit is contained in:
194
Projets/wator/README.md
Normal file
194
Projets/wator/README.md
Normal file
@@ -0,0 +1,194 @@
|
||||
# TP : Simulation Wa-Tor - Proies et Prédateurs
|
||||
|
||||
## Introduction
|
||||
|
||||
Wa-Tor est une simulation de type proie-prédateur. Dans une mer torique, évoluent des thons (*les proies*) et des requins (*les prédateurs*). Ces deux espèces se déplacent, se reproduisent, et interagissent selon des règles spécifiques.
|
||||
|
||||
- Les requins doivent manger des thons pour survivre.
|
||||
- Les thons vivent éternellement tant qu'ils ne sont pas dévorés.
|
||||
|
||||
---
|
||||
|
||||
## La Mer
|
||||
|
||||
La mer est modélisée par une **grille torique à deux dimensions**.
|
||||
Chaque case de cette grille peut contenir :
|
||||
|
||||
- Rien (*case vide*),
|
||||
- Un thon,
|
||||
- Un requin.
|
||||
|
||||
Chaque case possède **quatre voisines** :
|
||||
|
||||
- Nord (N),
|
||||
- Sud (S),
|
||||
- Est (E),
|
||||
- Ouest (O).
|
||||
|
||||
---
|
||||
|
||||
## Les Poissons
|
||||
|
||||
### Thons
|
||||
|
||||
- **Caractéristique** : *Temps de gestation*.
|
||||
- **Initialisation** : à une valeur commune, appelée *durée de gestation des thons*.
|
||||
|
||||
### Requins
|
||||
|
||||
- **Caractéristiques** :
|
||||
1. *Temps de gestation*.
|
||||
2. *Énergie*.
|
||||
- **Initialisation** :
|
||||
- *Durée de gestation des requins*.
|
||||
- *Énergie des requins*.
|
||||
|
||||
---
|
||||
|
||||
## Simulation et Comportements
|
||||
|
||||
### Étapes d'une Simulation
|
||||
|
||||
À chaque pas de simulation, une case est sélectionnée aléatoirement.
|
||||
Deux scénarios possibles :
|
||||
|
||||
1. La case est vide : **Rien ne se passe**.
|
||||
2. La case est occupée : **Le poisson applique son comportement**.
|
||||
|
||||
### Comportement des Thons
|
||||
|
||||
1. **Déplacement**
|
||||
- Le thon choisit une case voisine libre au hasard.
|
||||
- Si aucune case libre, il reste sur place.
|
||||
|
||||
2. **Reproduction**
|
||||
- Son *temps de gestation* diminue de 1.
|
||||
- Si ce temps atteint 0 :
|
||||
- Le thon se reproduit sur la case qu'il quitte (s'il s'est déplacé).
|
||||
- Son *temps de gestation* est réinitialisé.
|
||||
|
||||
---
|
||||
|
||||
### Comportement des Requins
|
||||
|
||||
1. **Énergie**
|
||||
- Le requin perd 1 point d'énergie.
|
||||
|
||||
2. **Déplacement**
|
||||
- Il cherche une case voisine contenant un thon pour le manger.
|
||||
Si une telle case existe :
|
||||
- Il s'y déplace et mange le thon.
|
||||
- Son *énergie* est réinitialisée.
|
||||
- Sinon, il choisit une case voisine vide.
|
||||
- S'il n'y en a pas, il reste sur place.
|
||||
|
||||
3. **Mort**
|
||||
- Si l'énergie du requin atteint 0, il meurt.
|
||||
|
||||
4. **Reproduction**
|
||||
- Son *temps de gestation* diminue de 1.
|
||||
- Si ce temps atteint 0 :
|
||||
- Il se reproduit sur la case qu'il quitte (s'il s'est déplacé).
|
||||
- Son *temps de gestation* est réinitialisé.
|
||||
|
||||
---
|
||||
|
||||
## Phénomènes Émergents
|
||||
|
||||
La simulation peut générer des **cycles proies-prédateurs** si les paramètres sont bien choisis.
|
||||
|
||||
### Paramètres Clés
|
||||
|
||||
- *Temps de gestation des thons*.
|
||||
- *Énergie des requins*.
|
||||
- *Durée de gestation des requins*.
|
||||
|
||||
Pour observer un cycle périodique, il faut respecter :
|
||||
**temps gestation des thons < énergie des requins < durée gestation des requins**.
|
||||
|
||||
### Configuration Initiale
|
||||
|
||||
- **30%** des cases occupées par des thons.
|
||||
- **10%** des cases occupées par des requins.
|
||||
|
||||
Valeurs suggérées :
|
||||
|
||||
- Temps gestation des thons : **2**.
|
||||
- Énergie des requins : **3**.
|
||||
- Durée gestation des requins : **5**.
|
||||
|
||||
---
|
||||
|
||||
## Travail à Réaliser
|
||||
|
||||
L’objectif est de programmer une simulation Wa-Tor sur un nombre donné de pas.
|
||||
|
||||
### Étapes
|
||||
|
||||
1. **Concevoir les structures de données**.
|
||||
2. **Décomposer le programme** en fonctions ou classes.
|
||||
3. **Programmer et tester** progressivement.
|
||||
|
||||
### Questions Clés
|
||||
|
||||
- Quels défis vos élèves pourraient-ils rencontrer ?
|
||||
- Quelles notions ce TP permet-il d’évaluer ?
|
||||
|
||||
---
|
||||
|
||||
## Rendu Attendu
|
||||
|
||||
- **L’activité complète en markdown**.
|
||||
- **Corrigé** détaillé.
|
||||
- **Notions abordées** dans l'activité.
|
||||
|
||||
Déposez votre travail sur **GitLab** avec votre enseignant ajouté comme **développeur**.
|
||||
|
||||
---
|
||||
|
||||
## Compléments
|
||||
|
||||
### Affichage des Résultats
|
||||
|
||||
Pour visualiser l'évolution de la mer, on peut afficher l'état de la grille tous les 100 pas, avec une petite pause entre chaque affichage :
|
||||
|
||||
```python
|
||||
import time
|
||||
time.sleep(0.1) # pause de 1/10e de seconde
|
||||
```
|
||||
|
||||
**Analyse des Populations**
|
||||
|
||||
Ajoutez des variables globales pour suivre :
|
||||
|
||||
• Nombre de thons.
|
||||
|
||||
• Nombre de requins.
|
||||
|
||||
|
||||
|
||||
Enregistrez ces données à chaque pas sous forme de triplets :
|
||||
|
||||
(numéro du pas, nombre de thons, nombre de requins).
|
||||
|
||||
|
||||
|
||||
**Tracé des Courbes**
|
||||
|
||||
|
||||
|
||||
Utilisez pylab pour visualiser l’évolution des populations :
|
||||
|
||||
```python
|
||||
`import pylab`
|
||||
|
||||
`data_x = [pas1, pas2, ..., pasN]`
|
||||
`data_y1 = [nb_thons1, nb_thons2, ..., nb_thonsN]`
|
||||
`data_y2 = [nb_requins1, nb_requins2, ..., nb_requinsN]`
|
||||
|
||||
`pylab.plot(data_x, data_y1, label="Thons")`
|
||||
`pylab.plot(data_x, data_y2, label="Requins")`
|
||||
`pylab.title("Évolution des populations")`
|
||||
`pylab.legend()`
|
||||
`pylab.show()`
|
||||
```
|
||||
Reference in New Issue
Block a user