borisflesch / Game-of-Life

Game of Life

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Projet : Game of Life

Build Status GitHub version

Ce dépôt contient l'intégralité du projet du cours de Techniques de Développement intitulé « Game of Life ».

Structure des fichiers

  • / racine
    • src/ contient toutes les sources (*.c)
    • lib/ contient les librairies (*.a)
    • include/ contient toutes les en-têtes de fonctions et structures du programme (*.h)
    • grilles/ contient l'ensemble des grilles disponibles

Commandes importantes

Compiler le programme

make

Le fichier exécutable se trouve au chemin suivant : /bin/main Par défaut, le programme est compilé en mode graphique (Cairo et X requis).

Pour compiler en mode texte :

make MODE=TEXTE

ATTENTION : Il est impératif de nettoyer les artefacts de compilation en passant du mode textuel au mode graphique et vice versa. ATTENTION #2 : En mode graphique, les commandes correspondent à un format de clavier AZERTY. Il faudra donc, par exemple, avec un clavier QWERTY, appuyer sur "a" pour quitter le programme (le "a" d'un clavier QWERTY étant à l'emplacement du "q" sur un clavier AZERTY).

Exécuter le programme

./bin/main <numéro de la grille à charger>

Les grilles se trouvent dans le répertoire /grilles/ et ont comme nom de fichier "grilleX.txt", X indiquant le numéro de la grille.

Exemple :

./bin/main 3

Générer la documentation (Doxygen)

doxygen

Il suffit ensuite d'ouvrir le fichier /doc/html/index.html pour accéder à l'intégralité de la documentation

Générer une archive du programme

make dist

L'archive sera créée dans le répertoire /dist

Nettoyer les artefacts de compilation

make clean

Ajouter des grilles

Si vous souhaitez ajouter vos propres conditions initiales pour le jeu, vous pouvez ajouter des grilles dans le répertoire /grilles/. Le fichier devra être nommé sous la forme grille[numéro de grille].txt et contenir les informations suivantes, en respectant espaces et retours à la ligne, et où chaque paramètre est un nombre entier :

  • NBL : Nombre de lignes de la grille
  • NBC : Nombre de colonnes de la grille
  • NBCELL : Nombre de cellules initiales dans la grille
  • L_CELL_X : Ligne de la cellule X (entre 0 et NBL - 1)
  • C_CELL_X : Colonne de la cellule X (entre 0 et NBC - 1)
  • NBCELL_NON_VIABLES : Nombre de cellules non-viables dans la grille
  • L_CELLNV_X : Ligne de la cellule non-viable X (entre 0 et NBL - 1)
  • C_CELLNV_X : Colonne de la cellule non-viable X (entre 0 et NBC - 1)

Toute la partie concernant les cellules non-viables est facultative lors de la création d'une nouvelle grille.

Fichier grilleX.txt :

NBL NBC

NBCELL
L_CELL_1 C_CELL_1
L_CELL_2 C_CELL_2
...
L_CELL_X C_CELL_X

NBCELL_NON_VIABLES
L_CELLNV_1 C_CELLNV_1
L_CELLNV_2 C_CELLNV_2
...
L_CELLNV_X C_CELLNV_X

Exemple de fichier grille

Considérons le fichier grille1.txt suivant :

4 6

3
1 2
1 3
1 4

Celui-ci produira la grille suivante une fois chargé :

Versions

Organisation des versions du projet

Les versions v0.x sont des versions stables du projet dans lesquelles « x » représente le dernier niveau finalisé présent dans cette version (cf. sujets de TP).

Des versions v0.x.y peuvent exister entre les niveaux, auquel cas « x » représente toujours le dernier niveau finalisé et « y » représente la dernière question terminée dans le niveau suivant. Néamoins, ces versions sont susceptibles de contenir des bugs ou anomalies. Il est donc préférable de les manipuler avec précaution et de se référer aux v0.x pour des versions stables.

Journal des versions

  • v0.5 : Niveau 5 finalisé
  • v0.4 : Niveau 4 finalisé (GUI)
  • v0.3 : Niveau 3 finalisé
  • v0.2 : Niveau 2 finalisé
  • v0.1.2 : Question 2 du niveau 2 terminée
  • v0.1 : Niveau 1 finalisé
  • v0 : Commit initial, fichiers de départs uniquement

About

Game of Life


Languages

Language:C 91.7%Language:C++ 5.0%Language:Makefile 3.3%