Skip to content
Snippets Groups Projects
Léon Gall's avatar
GALL LEON authored
cf6208b3
Name Last commit Last update
grilles
include
src
.gitignore
Doxyfile
README.md
makefile

Jeu de la Vie

Bienvenue dans le projet de technique de développement du troisième semestre de licence d'informatique.

Description

Le Jeu de la Vie (ou Game of Life) est, en réalité, un automate cellulaire défini en 1970 par le mathématicien anglais John Conway afin de tenter de résoudre un problème soulevé par un mathématicien, père de l’informatique, John Von Neumann.

Ce n’est pas à proprement parler un jeu : il ne nécessite pas l’intervention d’un joueur humain, hormis pour fixer les conditions initiales du jeu. Il se compose d’un univers dans lequel évoluent des cellules vivantes suivant des règles d’évolution précises.

Dans la version originale décrite par John Conway, l’univers est défini sur une grille à deux dimensions, de taille variable, où chaque case est une cellule pouvant prendre deux états différents : morte ou vivante.

Le passage d’un état à l’autre est guidé par les règles d’évolution suivantes :

  • Une cellule morte au temps t devient vivante au temps t + 1 si et seulement si elle a exactement 3 cellules vivantes dans son voisinage.
  • Une cellule vivante au temps t reste vivante au temps t + 1 si et seulement si elle a exactement 2 ou 3 cellules vivantes dans son voisinage, sinon elle meurt.
  • Le voisinage utilisé est le 8-voisinage : pour une cellule donnée, ses voisines sont les 8 cellules qui l’entourent.

A partir de ces règles de base beaucoup d’extensions ont été proposées mais le jeu garde le même principe : il se déroule suivant un nombre de pas de temps théoriquement infini. À chaque pas de temps t, on évalue, pour chaque cellule, l’état de la cellule au pas de temps t + 1 en fonction des règles d’évolution des cellules.

Vous pourrez obtenir de plus vastes précisions sur ce jeu dans la vidéo de présentation suivante.

Description issue du document de présentation du projet.

Niveaux

La programmation de ce projet s'est décomposée en 5 niveaux :

À chaque niveau correspond un numéro de version, comme expliqué dans la rubrique suivante.

Versionnement

Le versionnement à l'aide de tags peut se lire de cette façon : <NIVEAU>.0.<VERSION>

  • Le niveau se lit au début : 1 représentera le niveau 1, ...
  • La version de ce niveau se lit à la fin : la première version sera numérotée 0 (non noté), la seconde 1, ... (et oui, les informaticiens commencent le compte à 0 😉)

La dernière version d'un niveau est donc celle avec le numéro de <VERSION> le plus haut.

Utilisation

Compilation et lancement du jeu

Pour compiler ce jeu, deux modes sont disponibles :

Mode terminal

Si vous ne possédez pas les ressources nécessaires pour lancer la compilation du jeu graphique, ou bien que vous préférez simplement le mode en ligne de commandes, vous avez la possibilité de compiler en utilisant :

make MODE=TEXTE

Mode graphique

Sinon, vous pouvez utiliser la commande make pour compiler la version graphique du jeu. C'est bien plus agréable à regarder que la version en ligne de commande...

Lancement

Après compilation, indépendament de son mode, pour lancer le jeu, il faut entrer la commande suivante :

./bin/main <CHEMIN FICHIER GRILLE>

En général, ce sera :

./bin/main grilles/grille<NUMERO>.txt

Contrôle des conditions de jeu

Mode terminal

  • Touche q pour quitter le jeu.
  • Touche n pour entrer le nom d'une nouvelle grille.
n <CHEMIN FICHIER GRILLE>
  • Touche c pour activer/désactiver le calcul de voisinage cyclique. Initialement, il est activé.
  • Touche v pour activer/désactiver le vieillissement des cellules. Initialement, il est désactivé.
  • Touche enter pour évoluer d'un pas de temps.
  • Touche o pour tester l'oscilliation de la grille.
    • Pour quitter ce test il suffit d'actionner la touche enter.

Mode graphique

  • Touche n pour entrer le nom d'une nouvelle grille.
  • Touche c pour activer/désactiver le calcul de voisinage cyclique. Initialement, il est activé.
  • Touche v pour activer/désactiver le vieillissement des cellules. Initialement, il est désactivé.
  • Touche o pour tester l'oscilliation de la grille.
    • Pour quitter ce test il suffit d'actionner n'importe quelle touche ou de réaliser un Clic gauche (Attention, la touche q, ainsi que le Clic droit quittent le jeu).
  • Clic Clic gauche pour évoluer d'un pas de temps.
  • Touche enter pour évoluer d'un pas de temps.
    • Lorsque vous êtes sur le menu d'ouverture d'une nouvelle grille, un clic gauche vous fera sortir de ce menu, et revenir à la grille chargée précédemment.
  • Clic Clic droit pour quitter le jeu.
  • Touche q pour quitter le jeu.

Contribution

Ce projet est strictement personnel. Une contribution de votre part pourrait nous envoyer en conseil de discipline.

Auteurs

Les codes de ce projet ont été écrits par Léon GALL, ainsi que par l'équipe pédagogique de la licence informatique.