Projets : structure par projet (jeu_de_la_vie, labyrinthe, mastermind, wator)

This commit is contained in:
2026-06-15 12:57:25 +02:00
parent 47ccdbb255
commit b17a21b394
75 changed files with 4304 additions and 0 deletions

82
Projets/wator/JALONS.md Normal file
View File

@@ -0,0 +1,82 @@
# 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

72
Projets/wator/SUIVI.md Normal file
View File

@@ -0,0 +1,72 @@
# Suivi de projet — [Nom du projet]
**Élève(s) :**
**Classe :**
**Projet :**
**Date de début :**
---
## Journal de bord
*Compléter après chaque séance.*
### Séance 1 — [Date]
**Objectif de la séance :**
**Ce que j'ai fait :**
**Difficultés rencontrées :**
**Décisions prises et pourquoi :**
**Ce qu'il reste à faire :**
---
### Séance 2 — [Date]
**Objectif de la séance :**
**Ce que j'ai fait :**
**Difficultés rencontrées :**
**Décisions prises et pourquoi :**
**Ce qu'il reste à faire :**
---
*(Dupliquer le bloc ci-dessus pour chaque séance)*
---
## Bilan du projet
### Ce qui fonctionne
### Ce qui ne fonctionne pas encore (et pourquoi)
### Choix techniques importants
*Quelles décisions as-tu prises ? Pourquoi ce choix plutôt qu'un autre ?*
### Ce que j'ai appris
---
## Préparation au Grand Oral
*Le Grand Oral dure 20 minutes. Tu dois pouvoir présenter ton projet et répondre à des questions. Prépare-toi en répondant à ces questions :*
**1. En quoi consiste ton projet ? Explique-le en 2 minutes à quelqu'un qui ne connaît pas l'informatique.**
**2. Quelles notions du cours as-tu utilisées ? Donne un exemple concret dans ton code.**
**3. Quelle a été la difficulté principale ? Comment l'as-tu résolue ?**
**4. Qu'aurais-tu fait différemment si tu recommençais ?**
**5. Quelle extension aimerais-tu implémenter si tu avais plus de temps ?**