83 lines
3.2 KiB
Markdown
83 lines
3.2 KiB
Markdown
|
|
# Jalons — Wa-Tor
|
||
|
|
|
||
|
|
> Progression suggérée sur ~10 séances (septembre → février)
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Phase 1 — Modélisation (Séances 1-2)
|
||
|
|
|
||
|
|
**Objectif :** Comprendre le système proie-prédateur et choisir les structures de données.
|
||
|
|
|
||
|
|
- Lire le `README.md` et les règles du Wa-Tor
|
||
|
|
- Identifier les entités : grille, thon, requin — quels attributs ont-ils ?
|
||
|
|
- Choisir une représentation de la grille : liste 2D, dictionnaire `{(i,j): animal}` ?
|
||
|
|
- Écrire `creer_grille(n, m, nb_thons, nb_requins)` → grille initialisée aléatoirement
|
||
|
|
- Écrire `afficher(grille)` → affichage terminal (ex. `T` thon, `R` requin, `.` vide)
|
||
|
|
|
||
|
|
**Variables globales à définir :**
|
||
|
|
- `GESTATION_THON` : nombre d'étapes avant reproduction
|
||
|
|
- `GESTATION_REQUIN` : nombre d'étapes avant reproduction
|
||
|
|
- `ENERGIE_REQUIN` : énergie initiale d'un requin (perd 1 par étape, +1 en mangeant)
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Phase 2 — Les thons (Séances 3-4)
|
||
|
|
|
||
|
|
**Objectif :** Implémenter le comportement des proies.
|
||
|
|
|
||
|
|
- Écrire `voisins_libres(grille, i, j)` → liste des cases vides adjacentes (N, S, E, O)
|
||
|
|
- Écrire `deplacer_thon(grille, i, j)` → le thon se déplace vers une case libre aléatoire
|
||
|
|
- Gérer la gestation : si `age >= GESTATION_THON`, un thon se reproduit en laissant un jeune sur la case quittée
|
||
|
|
- Tester sur une grille avec uniquement des thons : se déplacent-ils ? Se reproduisent-ils ?
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Phase 3 — Les requins (Séances 5-6)
|
||
|
|
|
||
|
|
**Objectif :** Implémenter les prédateurs.
|
||
|
|
|
||
|
|
- Écrire `voisins_thons(grille, i, j)` → liste des cases adjacentes contenant un thon
|
||
|
|
- Écrire `deplacer_requin(grille, i, j)` :
|
||
|
|
- Si un thon est adjacent → le manger (gain d'énergie, déplacement)
|
||
|
|
- Sinon → se déplacer vers une case libre
|
||
|
|
- Gérer la gestation (reproduction comme le thon)
|
||
|
|
- Si énergie ≤ 0 → le requin meurt
|
||
|
|
- Tester sur une grille mixte
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Phase 4 — Simulation complète (Séances 7-8)
|
||
|
|
|
||
|
|
**Objectif :** Assembler et observer.
|
||
|
|
|
||
|
|
- Écrire `etape(grille)` → applique une étape à tous les animaux (attention à l'ordre !)
|
||
|
|
- Écrire `simuler(grille, nb_etapes)` → boucle principale avec affichage
|
||
|
|
- Observer les dynamiques : les populations oscillent-elles ? L'une disparaît-elle ?
|
||
|
|
- Faire varier les paramètres et noter les effets
|
||
|
|
|
||
|
|
**Point d'attention :** chaque animal ne doit agir qu'une seule fois par étape — utiliser un marqueur "déjà déplacé" pour éviter qu'un animal soit traité deux fois.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Phase 5 — Visualisation et finitions (Séances 9-10)
|
||
|
|
|
||
|
|
**Objectif :** Affichage graphique et préparation du Grand Oral.
|
||
|
|
|
||
|
|
- Ajouter un affichage graphique (Pyxel, matplotlib, tkinter)
|
||
|
|
- Tracer l'évolution des populations (courbe thons / requins par étape)
|
||
|
|
- Nettoyer le code, ajouter des docstrings
|
||
|
|
- Compléter le `SUIVI.md` et préparer les questions pour le Grand Oral
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Idées d'extension avancée
|
||
|
|
|
||
|
|
- **Cycles de Lotka-Volterra** : comparer les courbes simulées aux équations différentielles théoriques
|
||
|
|
- **Grille torique** : les bords se rejoignent (comme dans le TP d'origine)
|
||
|
|
- **Espèce supplémentaire** : ajouter un super-prédateur
|
||
|
|
- **Paramétrage dynamique** : interface pour modifier les paramètres en cours de simulation
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
Auteur : Florian Mathieu — Licence CC BY NC
|