Projets de programmation

le jeu de la vie

Dans le cadre de ce projet de programmation vous réaliserez un jeu de la vie tel que le mathématicien John Conway l'a imaginé. Ce n'est pas un jeu au sens propre du terme puisqu'aucune interaction n'est possible : il suffit de regarder évoluer un ensemble de cellules virtuelles. Par contre, ce jeu permet d'illustrer de nombreux phénomènes tant informatiques que mathématiques.

Règles du jeu de la vie

Ce jeu prend place dans un monde représenté par un quadrillage. Dans un premier temps nous pourrons considérer que le monde est fini et que le quadrillage a donc des limites. Il peut éventuellement se replier sur lui même en format soit un cylindre (les côtés droit et gauche se touchent virtuellement) soit un tore (les côtés droit et gauche se touchent virtuellement et les deux extrémités du cylindre ainsi formé se touchent à leur tour).

Le déroulement du jeu est le suivant. Dans chaque case du quadrillage se trouve exactement une cellule virtuelle (cellule au sens biologique du terme). Cette cellule peut être vivante ou morte et le but du jeu est de voir l'évolution d'un ensemble initial donné de cellules.

Le cycle de vie d'une cellule, qui va nous permettre de savoir si oui ou non elle sera là à l'instant t+1, dépend directement de la présence ou non de cellules dans ses huit cases voisines (V8), à l'instant t :

  1. une cellule morte renaîtra si, dans son V8 à l'instant t, 2 ou 3 cellules vivantes sont présentes ;
  2. une cellule vivante le restera si, dans son V8 à l'instant t, sont présentes 2 ou 3 cellules vivantes ;
  3. dans tous les autres cas, la cellule mourra ou restera morte.

L'état initial (le nombre de cellules vivantes et leur position) va déterminer l'évolution du monde.

Travail à effectuer

Vous devez écrire un programme en C permettant de faire évoluer le monde décrit ci-dessus et de visualiser son évolution.

Votre programme devra être capable de lire et de faire évoluer les mondes décrits dans des fichiers au format life 1.05. Il vous est demandé de vous limiter aux règles usuelles et de fait, la directive #R pourra être ignorée. Si cependant vous avez envie de mettre en œuvre d'autres règles, vous pouvez le faire et dans ce cas, la directive #R devra être prise en compte.

Enfin, comme ce projet a une composante visuelle, nous vous demandons de choisir et d'utiliser une bibliothèque de fonction pour l'affichage.

Une fois ce travail minimal effectué, vous pouvez apporter toutes les améliorations que vous pouvez imaginer à votre programme.


  1. [] : pour avoir plus de détails, ainsi que des exemples de fonctionnement du jeu de la vie, vous pouvez vous reporter au site http://fr.wikipedia.org/wiki/Jeu_de_la_vie.