Files
TermNSI/Projets/jeu_de_la_vie/JALONS.md

81 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Jalons — Le Jeu de la Vie
> Progression suggérée sur ~10 séances (septembre → février)
---
## 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 ?
---
## 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)
**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.
---
## 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 ?
---
## 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
---
## 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
---
Auteur : Florian Mathieu — Licence CC BY NC