Skip to content
Snippets Groups Projects
Commit ddb6084b authored by MOSA SAMY's avatar MOSA SAMY
Browse files

Ajout de la documentation Doxygen

parent f0797b61
Branches
Tags 0.1.3
No related merge requests found
......@@ -32,7 +32,7 @@ DOXYFILE_ENCODING = UTF-8
# title of most generated pages and in a few other places.
# The default value is: My Project.
PROJECT_NAME = "My Project"
PROJECT_NAME = "Jeu de la vie"
# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
# could be handy for archiving the generated documentation or if some version
......@@ -91,7 +91,7 @@ ALLOW_UNICODE_NAMES = NO
# Ukrainian and Vietnamese.
# The default value is: English.
OUTPUT_LANGUAGE = English
OUTPUT_LANGUAGE = French
# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all
# documentation generated by doxygen is written. Doxygen will use this
......@@ -829,7 +829,7 @@ WARN_LOGFILE =
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
# Note: If this tag is empty the current directory is searched.
INPUT =
INPUT = src
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
......@@ -1543,7 +1543,7 @@ DISABLE_INDEX = NO
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
GENERATE_TREEVIEW = NO
GENERATE_TREEVIEW = YES
# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
# doxygen will group on one line in the generated HTML documentation.
......
......@@ -6,6 +6,12 @@
#include "grille.h"
/**
* @brief Alloue et initalise la grille g à partir d'un fichier
*
* @param[in] filename Nom du fichier d'entrée
* @param[out] g Pointeur vers la grille à initialiser
*/
void init_grille_from_file(char *filename, grille *g)
{
FILE *pfile = NULL;
......@@ -31,6 +37,12 @@ void init_grille_from_file(char *filename, grille *g)
return;
}
/**
* @brief Recopie la grille gs dans la grille gd (sans allocation)
*
* @param[in] gs Grille source
* @param[out] gd Grille destination
*/
void copie_grille(grille gs, grille gd)
{
int i, j;
......@@ -40,8 +52,17 @@ void copie_grille(grille gs, grille gd)
return;
}
/**
* @brief Alloue une grille de taille l*c, et initialise toutes les cellules à mortes
*
* @param[in] l Nombre de lignes
* @param[in] c Nombre de colonnes
* @param[out] g Pointeur vers la grille à allouer
*/
void alloue_grille(int l, int c, grille *g)
{
g->nbl = l;
g->nbc = c;
g->cellules = malloc(l * sizeof(int *));
for (int i = 0; i < l; i++)
{
......@@ -49,10 +70,13 @@ void alloue_grille(int l, int c, grille *g)
for (int j = 0; j < c; j++)
g->cellules[i][j] = 0;
}
g->nbl = l;
g->nbc = c;
};
/**
* @brief Libère complètement une grille
*
* @param g Grille à libérer
*/
void libere_grille(grille *g)
{
for (int i = 0; i < g->nbl; i++)
......
......@@ -11,12 +11,11 @@
#include <stdio.h>
#include <assert.h>
// structure grille : nombre de lignes, nombre de colonnes, tableau de tableau de cellules
typedef struct
{
int nbl;
int nbc;
int **cellules;
int nbl; /**< Nombre de lignes*/
int nbc; /**< Nombre de colonnes*/
int **cellules; /**< Tableau de tableaux de cellules*/
} grille;
// alloue une grille de taille l*c, et initialise toutes les cellules à mortes
......
......@@ -6,6 +6,11 @@
#include "io.h"
/**
* @brief Affichage d'un trait horizontal
*
* @param c Nombre de cases
*/
void affiche_trait(int c)
{
int i;
......@@ -15,6 +20,12 @@ void affiche_trait(int c)
return;
}
/**
* @brief Affichage d'une ligne de la grille
*
* @param c Nombre de cases
* @param ligne Ligne à afficher sous forme de tableau d'entiers
*/
void affiche_ligne(int c, int *ligne)
{
int i;
......@@ -27,6 +38,11 @@ void affiche_ligne(int c, int *ligne)
return;
}
/**
* @brief Affichage d'une grille
*
* @param g Grille à afficher
*/
void affiche_grille(grille g)
{
int i, l = g.nbl, c = g.nbc;
......@@ -41,11 +57,22 @@ void affiche_grille(grille g)
return;
}
/**
* @brief Effacement d'une grille
*
* @param g Grille à effacer
*/
void efface_grille(grille g)
{
printf("\n\e[%dA", g.nbl * 2 + 5);
}
/**
* @brief Débute le jeu
*
* @param g Pointeur vers la grille de jeu
* @param gc Pointeur vers une copie temporaire de la grille de jeu
*/
void debut_jeu(grille *g, grille *gc)
{
char c = getchar();
......
#ifndef __IO_H
#define __IO_H
#include <stdio.h>
/**
* \file io.h
* header pour les I/O (entrées/sorties)
* \author Samy MOSA
*/
#ifndef __IO_H
#define __IO_H
#include <stdio.h>
#include "grille.h"
#include "jeu.h"
......
......@@ -6,6 +6,14 @@
#include "jeu.h"
/**
* @brief Compte le nombre de voisins vivants de la cellule (i,j). Les bords sont cycliques.
*
* @param[in] i Ligne de la cellule
* @param[in] j Colonne de la cellule
* @param[in] g Grille contenant la cellule
* @return Le nombre de voisins vivants de la cellule (i,j)
*/
int compte_voisins_vivants(int i, int j, grille g)
{
int v = 0, l = g.nbl, c = g.nbc;
......@@ -21,6 +29,12 @@ int compte_voisins_vivants(int i, int j, grille g)
return v;
}
/**
* @brief Fait évoluer la grille g d'un pas de temps
*
* @param[in,out] g Pointeur vers la grille à faire évoluer
* @param[in] gc Pointeur vers une copie temporaire de la grille
*/
void evolue(grille *g, grille *gc)
{
copie_grille(*g, *gc); // copie temporaire de la grille
......
......@@ -11,13 +11,13 @@
// modulo modifié pour traiter correctement les bords i=0 et j=0
// dans le calcul des voisins avec bords cycliques
static inline int modulo(int i, int m) {return (i+m)%m;}
static inline int modulo(int i, int m) { return (i + m) % m; }
// compte le nombre de voisins vivants de la cellule (i,j)
// les bords sont cycliques.
int compte_voisins_vivants (int i, int j, grille g);
int compte_voisins_vivants(int i, int j, grille g);
// fait évoluer la grille g d'un pas de temps
void evolue (grille *g, grille *gc);
void evolue(grille *g, grille *gc);
#endif
......@@ -10,6 +10,13 @@
#include "io.h"
#include "jeu.h"
/**
* @brief Fonction principale. Initialise les grilles, lance le jeu et libère les grilles.
*
* @param argc Nombre d'arguments
* @param argv Tableau d'arguments sous forme de chaînes de caractères
* @return int : 0 si tout si aucune erreur ne s'est produite.
*/
int main(int argc, char **argv)
{
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment