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