Projet 1⚓︎
Sujet 1 : Life & Death⚓︎
É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
- Utiliser le module
pygame
pour animer la grille génération après génération. - L'état initial de la grille sera choisi aléatoirement.
- Le programme principal devra contenir deux classes:
Grille
etCellule
. -
La classe
Grille
contiendra une méthodeactualisation
(ouupdate
) qui consistera à actualiser l'état de la grille (c'est à dire de chacune de ses cellules) ainsi qu'à afficher la grille.La boucle des événements sera donc réduite à (avec par exemple
G
instance de la classeGrille
):1 2 3 4 5 6 7 8 9
continuer = True while continuer: for evenement in pygame.event.get(): if evenement.type == QUIT: continuer = False G.actualisation() pygame.display.flip() pygame.time.delay(100)
Sujet 2: Promenade d'une puce⚓︎
Énoncé
Une puce se promène sur une grille dont les cases appellées cellules peuvent être blanches ou noires. Au départ, toutes les cellules sont blanches et la puce se trouve au centre de la grille.
La puce peut se déplacer horizontalement ou verticalement sur la grille de la façon suivante:
- si la puce se situe sur une cellule blanche, elle tourne de 90° vers la droite, change la couleur de la case en noir et avance d'une case.
- si la puce se situe sur une cellule noire, elle tourne de 90° vers la gauche, change la couleur de la case en blanc et avance d'une case.
Consignes
- Utiliser le module
pygame
pour animer la grille génération après génération. - Le programme principal devra contenir deux classes:
Grille
etPuce
. -
La classe
Grille
contiendra une méthodeactualisation
(ouupdate
) qui consistera à actualiser l'état de la grille (c'est à dire de la cellule où la puce est passée) ainsi qu'à afficher la grille.La boucle des événements sera donc réduite à (avec par exemple
G
instance de la classeGrille
):1 2 3 4 5 6 7 8
continuer = True while continuer: for evenement in pygame.event.get(): if evenement.type == QUIT: continuer = False G.actualisation() pygame.display.flip()