Files
TermNSI/Projets/jeu_de_la_vie/JALONS.md

81 lines
2.9 KiB
Markdown
Raw Normal View History

2026-06-18 19:03:42 +02:00
# Jalons - Le Jeu de la Vie
> Progression suggérée sur ~10 séances (septembre → février)
---
2026-06-18 19:03:42 +02:00
## Phase 1 - Analyse et modélisation (Séances 1-2)
**Objectif :** Comprendre le problème et choisir les structures de données.
- Lire les règles de Conway et les reformuler avec ses propres mots
- Dessiner à la main quelques générations d'une configuration simple (ex. 3 cellules en ligne)
- Choisir une représentation de la grille : liste 2D, dictionnaire `{(i,j): état}` ?
- Écrire la fonction `creer_grille(n, m)` → grille vide de n lignes et m colonnes
- Écrire la fonction `afficher_grille(grille)` → affichage terminal
**Questions à se poser :**
- Comment représenter une cellule morte / vivante en Python ?
- Que se passe-t-il aux bords de la grille ?
---
2026-06-18 19:03:42 +02:00
## Phase 2 - Règles du jeu (Séances 3-4)
**Objectif :** Implémenter le cœur de la simulation.
- Écrire `compter_voisins(grille, i, j)` → nombre de voisins vivants de la cellule (i, j)
- Écrire `etat_suivant(etat, nb_voisins)` → applique les 4 règles, renvoie le nouvel état
- Écrire `generation_suivante(grille)` → calcule la grille à l'étape suivante
- Tester manuellement sur un petit exemple (3×3)
2026-06-18 19:03:42 +02:00
**Point d'attention :** la prochaine génération doit être calculée **simultanément** pour toutes les cellules - on ne modifie pas la grille en cours de calcul.
---
2026-06-18 19:03:42 +02:00
## Phase 3 - Simulation et configurations (Séances 5-6)
**Objectif :** Lancer une simulation complète et observer des comportements.
- Écrire `simuler(grille, nb_generations)` → boucle principale
- Tester sur les configurations classiques :
- **Bloc** (stable)
- **Clignotant** (oscillateur période 2)
- **Planeur** (se déplace)
- Observer : certaines configurations sont-elles stables ? Oscillantes ? Chaotiques ?
---
2026-06-18 19:03:42 +02:00
## Phase 4 - Affichage graphique (Séances 7-8)
**Objectif :** Rendre la simulation visuelle et interactive.
- Choisir une bibliothèque graphique : Pyxel, matplotlib (animation), tkinter
- Afficher la grille avec des cellules colorées
- Animer la simulation pas à pas avec un délai configurable
- (Extension) Permettre à l'utilisateur de cliquer pour activer/désactiver des cellules
---
2026-06-18 19:03:42 +02:00
## Phase 5 - Finitions et documentation (Séances 9-10)
**Objectif :** Préparer le rendu et le Grand Oral.
- Nettoyer le code, ajouter des docstrings
- Rédiger un README personnel décrivant le projet et les choix techniques
- Compléter le `SUIVI.md`
- Préparer 2-3 questions pour le Grand Oral (voir `SUIVI.md`)
---
## Idées d'extension avancée
- **Grille torique** : `i % n` et `j % m` pour que les bords se rejoignent
- **Statistiques** : tracer le nombre de cellules vivantes par génération (matplotlib)
- **Chargement de patterns** : lire des fichiers `.rle` (format standard des patterns Conway)
- **Détection de stabilité** : arrêter la simulation quand la grille ne change plus
---
2026-06-18 19:03:42 +02:00
Auteur : Florian Mathieu - Licence CC BY NC