# 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