L'objectif de ce projet de réaliser un programme permettant de simuler le jeu de la vie en utilisant la programmation orientée objet.
Pour se remémorer le fonctionnement du jeu de la vie, voici quelques rappels sur ses principes et son déroulement.
Ce jeu de la vie a été inventé par le mathématicien britannique John H. Conway (1937-2020). Il représente est une simulation de l'évolution d'une population de cellules modélisées par un programme informatique.
Le Jeu de la vie est un « jeu à zéro joueur » en mode tour à tour. Il est défini comme jeu à zéro joueur, car il ne nécessite aucune intervention lors de son déroulement.
Il s’agit d’un automate cellulaire, un modèle où chaque état conduit mécaniquement à l’état suivant à partir de règles préétablies.
Le jeu se déroule sur une grille à deux dimensions, théoriquement infinie, dont les cases, que l'on appelle « cellules » peuvent prendre deux états distincts : « vivante » ou « morte ».
Chaque cellule possède 8 voisines, qui sont les cellules adjacentes horizontalement, verticalement et diagonalement.
À chaque tour de jeu, l'état d’une cellule est complétement déterminée par l’état de ses huit cellules voisines, selon les règles suivantes bien définie, que l'on appelle « règles d'évolution ».
Ce jeu repose sur deux règles relativement simples :
De plus, chaque case de la grille possède un nombre de cases voisines compris entre 3 (si c'est un coin) et 8 (si elle n'est pas sur le bord de la grille). Chaque case voisine peut être vivante ou morte.
Voici un exemple d'évolution passant d'une génération à .
Pour avoir plus d'informations sur le fonctionnement du jeu de la vie, vous pouvez regarder les ressources suivantes :
Vous allez concevoir et programmer une version du jeu de la vie en utilisant les principes de la programmation orientée objet (POO). Vous êtes libres dans vos choix de représentation, architecture et conception, tant que les règles du jeu sont respectées.
Une étape importante pour bien démarrer un projet est de réfléchir à la modélisation des informations, c’est-à-dire à la manière dont vous allez représenter les différentes entités de votre application.
Dans notre cas, il faut s'interroger sur la représentation :
Il n’est pas nécessaire de tout prévoir dès le départ. L’essentiel est de réfléchir à la structure globale et de faire émerger les grandes entités qui interagissent dans votre application.
L’intérêt d’utiliser la POO est de pouvoir faire évoluer facilement votre code par la suite.