Files
TermNSI/Projets/jeu_de_la_vie/README.md

55 lines
2.4 KiB
Markdown

# Projet - Le Jeu de la Vie
> En 1970, le mathématicien John Horton Conway invente un automate cellulaire capable de générer une vie artificielle à partir de quatre règles simples. Cinquante ans plus tard, des chercheurs utilisent encore ce modèle pour simuler des phénomènes biologiques, sociaux et physiques.
## Contexte
Le **Jeu de la Vie** est un automate cellulaire qui se déroule sur une grille infinie (ou torique) de cellules. Chaque cellule est soit **vivante**, soit **morte**. À chaque génération, l'état de chaque cellule évolue selon quatre règles appliquées simultanément :
1. Une cellule vivante avec **moins de 2 voisins vivants** meurt (sous-population).
2. Une cellule vivante avec **2 ou 3 voisins vivants** survit.
3. Une cellule vivante avec **plus de 3 voisins vivants** meurt (surpopulation).
4. Une cellule morte avec **exactement 3 voisins vivants** devient vivante (reproduction).
Ces règles font émerger des comportements complexes : structures stables, oscillateurs, planeurs...
## Compétences mobilisées
| Notion | Chapitre du cours |
|--------|-------------------|
| Listes 2D (grille) | Programmation |
| Fonctions pures | Paradigmes |
| Classes et objets | POO |
| Récursivité / itération | Récursivité |
| Visualisation (matplotlib / Pyxel) | - |
## Cahier des charges
### Fonctionnalités minimales
- [ ] Représenter la grille sous forme de liste 2D (ou dictionnaire)
- [ ] Calculer le nombre de voisins vivants d'une cellule
- [ ] Appliquer les 4 règles pour calculer la génération suivante
- [ ] Afficher la grille dans le terminal (caractères `█` / `.`)
- [ ] Lancer la simulation sur N générations
### Extensions possibles
- [ ] Affichage graphique animé (Pyxel, matplotlib, tkinter)
- [ ] Grille torique (les bords se rejoignent)
- [ ] Charger des configurations célèbres (planeur, canon à planeurs, pulsar...)
- [ ] Compter et tracer l'évolution du nombre de cellules vivantes
- [ ] Permettre à l'utilisateur de dessiner une configuration initiale
- [ ] Détecter automatiquement les structures stables et les oscillateurs
## Ressources
- `5_projet_le_jeu_de_la_vie.pdf` - consignes détaillées (dans le dossier parent)
- [Conway's Game of Life - Wikipedia](https://fr.wikipedia.org/wiki/Jeu_de_la_vie)
- [LifeWiki - patterns célèbres](https://conwaylife.com/wiki/)
- [Pyxel - moteur graphique Python](https://github.com/kitao/pyxel)
---
Auteur : Florian Mathieu - Licence CC BY NC