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:
Cellule
etJeu
. - La classe
Jeu
devra 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
pygame
pour 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 |