Projets : structure par projet (jeu_de_la_vie, labyrinthe, mastermind, wator)
This commit is contained in:
54
Projets/jeu_de_la_vie/README.md
Normal file
54
Projets/jeu_de_la_vie/README.md
Normal file
@@ -0,0 +1,54 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user