# 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