Le jeu de la vie est un ensemble de règles décrivant l'évolution de cellules dans un espace à deux dimensions. Il a été inventé par John Horton Conway en 1970. Il est un exemple de ce qu'on appelle un automate cellulaire. Il est connu pour l'incroyable complexité des structures qu'il peut générer à partir de règles très simples.
Crédits image :
Чинк
On peut le voir comme un « jeu à zéro joueurs » car il ne nécessite aucune intervention de la part de l'utilisateur. Il est donc intéressant à étudier en informatique car il permet de simuler des systèmes complexes sans intervention humaine.
Le jeu de la vie se déroule sur une grille à deux dimensions, théoriquement infinie (mais de taille finie dans la pratique). Chaque case de la grille peut être dans l'un des deux états possibles : vivante ou morte. Chaque case interagit avec ses huit voisins, qui sont les cases adjacentes horizontalement, verticalement et diagonalement.
À chaque étape, les transitions suivantes se produisent :
- Une cellule morte possédant exactement trois voisines vivantes devient vivante (naissance).
- Une cellule vivante possédant deux ou trois voisines vivantes le reste, sinon elle meurt (isolement ou surpopulation).
Cahier des charges
Vous devez écrire un programme qui permet de simuler le jeu de la vie sur une grille de taille laissée à votre choix.
Au lancement du programme, l'utilisateur peut donner l'état initial de la grille (en indiquant les cellules vivantes) ou laisser le programme choisir un état initial aléatoire.
Vous devez ensuite afficher la grille à chaque étape de la simulation, en laissant chaque étape visible un certain temps (par exemple une seconde).
Aucun exemple d'affichage n'est donné dans ce projet car un de vos objectifs est de concevoir une interface adaptée.
Pour aller plus loin (palier 4)
Une fois que vous avez atteint le palier 3 des fonctionnalités, voici quelques idées pour aller plus loin et atteindre le palier 4 :
- Permettre à l'utilisateur de personnaliser la taille de la grille.
- Faire en sorte que la grille soit torique, c'est-à-dire que les cellules de la première colonne soient voisines de celles de la dernière colonne, et de même pour les lignes.
-
Réaliser une interface graphique pour afficher la grille. Vous
pouvez par exemple utiliser la bibliothèque
pygame
.