From 1f735918f54deb6e200a257859b55709ee0425ed Mon Sep 17 00:00:00 2001 From: Efe ERKEN <efe.erken@etu.unistra.fr> Date: Mon, 14 Nov 2022 11:56:10 +0100 Subject: [PATCH] :memo: DOC: Add doc to grid.h and player.c Added complete documentation to grid.h and player.c. --- grid.c | 6 +++--- grid.h | 27 ++++++++++++++++++++++++--- player.c | 28 ++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 6 deletions(-) diff --git a/grid.c b/grid.c index 42c1031..fde1179 100644 --- a/grid.c +++ b/grid.c @@ -69,7 +69,7 @@ grid *creer_level(int row, int column) * * @param [in] G Pointeur sur une structure @c grid * - * @pre @a G doit être non NULL et pointer sur la structure allouée + * @pre @a G doit être non @c NULL et pointer sur la structure allouée * @post @a G contient toujours l'adresse qu'il avait * * Cette fonction prend en paramètre un pointeur sur une structure @c grid @@ -160,7 +160,7 @@ grid *init_level(const char *file_path) * * @param [in] G Pointeur sur la structure qui stocke le niveau * - * @pre @a G doit être non NULL et pointer sur la structure allouée + * @pre @a G doit être non @c NULL et pointer sur la structure allouée * @post Affichage des caractères * * Cette fonction parcourt le tableau dans la structure qui stocke les cases du niveau @@ -181,7 +181,7 @@ void display(grid *G) { * * @param [in] G Pointeur sur la structure qui stocke le niveau * - * @pre @a G doit être non NULL et pointer sur la structure allouée + * @pre @a G doit être non @c NULL et pointer sur la structure allouée * @post Affichage des caractères, appuyez sur 'q' pour quitter * * Cette fonction affiche le niveau du jeu comme la fonction @c display() mais au diff --git a/grid.h b/grid.h index e912cdd..7cc148a 100644 --- a/grid.h +++ b/grid.h @@ -1,8 +1,27 @@ #ifndef GRID_HEADER #define GRID_HEADER +/** + * @file grid.h + * @author Efe ERKEN (efe.erken@etu.unistra.fr) + * @brief Fichier header contenant les structures de données pour traiter les niveaux du jeu sokoban + * @version 0.1 + * @date 2022-11-14 + * + * @copyright Copyright (c) 2022 + * + */ + #include "player.h" +/** + * @brief Structure indiquant quel caractère correspond à quel élément du niveau + * + * Cette énumération indique les caractères symboliques du niveau qui sont + * gérés par le jeu. Dans ce jeu sokoban, il y a des murs, des boites, un joueur, + * des objectifs et du vide. Il y a deux caractères symboliques de plus pour indiquer + * la superposition d'une boite ou d'un joueur avec un objectif. + */ enum CaseType { WALL = '#', @@ -15,9 +34,11 @@ enum CaseType }; /** - * @struct Grid grid.h - * @brief Cette structure contient les informations - * concernant la grille du jeu et son contenu + * @brief Cette structure contient les informations concernant le niveau du jeu et son contenu + * + * Une fois le jeu est lancé, le fichier contenant le niveau du jeu est chargé dans une instance + * de cette structure. Les informations stocké sont les suivantes : chaque case du niveau, + * nombre de ligne et colonne ainsi que la position du joueur dans le niveau. */ typedef struct Grid { diff --git a/player.c b/player.c index 61bc292..f789968 100644 --- a/player.c +++ b/player.c @@ -1,8 +1,36 @@ +/** + * @file player.c + * @author Efe ERKEN (efe.erken@etu.unistra.fr) + * @brief Fichier source contenant la fonction pour traiter le mouvement du joueur + * @version 0.1 + * @date 2022-11-14 + * + * @copyright Copyright (c) 2022 + * + */ + #include <stdio.h> #include <stdlib.h> #include "player.h" #include "grid.h" +/** + * @brief Fonction qui bouge le joueur dans la direction voulue dans le niveau + * + * @param [in,out] G Pointeur sur la structure du niveau pour lire les cases de celui-ci et les modifier + * @param [in] D Une direction entre le haut, le bas, la gauche et la droite + * + * @pre @a G doit être non @c NULL et pointer sur la structure allouée + * @post Modification de la structure pointée par @a G + * + * Cette fonction prend en paramètre deux arguments tels qu'un pointeur vers la structure + * du niveau de jeu et une direction. Elle bouge le joueur dans la direction donnée si possible + * en mettant à jour les cases du niveau dans la structure. Si dans la direction voulue, il n'y a + * pas de mur ou de boite, alors elle change la case dans cette direction par un joueur ou une + * superposition de joueur et d'objectif si la case cible est un objectif + * et elle change la case où était le joueur auparavant par du vide ou un objectif si la case est + * une superposition de joueur et d'objectif avant. + */ void move_player(grid* G, enum Direction D) { int target_row = G->player.y, target_column = G->player.x; switch (D) { -- GitLab