Files

2.9 KiB
Raw Permalink Blame History

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