Skip to content
Snippets Groups Projects
Commit 1f735918 authored by ERKEN EFE's avatar ERKEN EFE
Browse files

:pencil: DOC: Add doc to grid.h and player.c

Added complete documentation to grid.h and player.c.
parent 290bff0d
Branches
Tags
No related merge requests found
......@@ -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
......
#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
{
......
/**
* @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) {
......
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