55 lines
2.4 KiB
Markdown
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
|