Projet 1⚓︎
Le jeu de la vie de John Conway⚓︎
Énoncé
On considère une grille - théoriquement infinie - dont les cases appellées cellules peuvent prendre deux états distincts : «vivante» ou «morte».
Une cellule possède huit voisins : les cellules adjacentes horizontalement, verticalement et diagonalement.
À chaque génération, les cellules peuvent changer d'état ou conserver leur état selon les règles suivantes:
- si une cellule morte possède exactement 3 cellules voisines vivantes, alors elle devient vivante (elle naît);
- si une cellule vivante possède 2 ou 3 cellules vivantes, alors elle reste vivante, sinon elle meurt.
L'objectif est de simuler, génération après génération, l'état de la grille.
Exemple:
Consignes
- Le programme principal devra contenir deux classes:
CelluleetJeu. - La classe
Jeudevra contenur (entre autres):- un attribut
grille: un tableau d'objetsCellule - une méthode
actualisation(ouupdate) qui consistera à actualiser l'état de la grille (c'est à dire de chacune de ses cellules) ainsi qu'à afficher la grille.
- un attribut
- L'état initial de la grille sera choisi aléatoirement.
- Utiliser le module
pygamepour animer la grille génération après génération.
La boucle des événements sera donc réduite à (avec par exemple j instance de la classe Jeu):
1 2 3 4 5 6 7 8 9 | |
Grille d'évaluation
Sur ce projet, vous serez évalués sur la grille suivante:
| Item | Contenu | Points |
|---|---|---|
| POO | Les classes sont correctement conçues et l'interface est cohérente et claire. L'utilisation de la POO est maîtrisée (utilisation de setters par ex.). | 5 |
| Travail de groupe | Les tâches sont définies et réparties au sein du groupe | 3 |
| Projet abouti | Le projet tourne sans erreur et répond aux consignes. | 4 |
| Qualité du code | Code aéré, spécifié, lisible, noms de variables pertinents... | 4 |
| Oral | Restitution orale | 4 |
| Total | 20 | |
| Bonus | Code en |
2 |
| Malus | Code récupéré sur le web (ChatGPT, forums, github, etc) | -50, Game Over |











