Newer
Older
#ifndef GRID_HEADER
#define GRID_HEADER
/** Liste des element du niveau
*/
enum CaseType
{
WALL = '#',
BOX = '$',
PLAYER = '@',
GOAL = '.',
NONE = ' '
};
/**
* @struct Goal grid.h
* @brief Cette structure contient des piont de Goal
*/
* @brief Cette structure contient les informations
* concernant la grille du jeu et son contenu
*/
struct Grid
{
enum CaseType *game_grid; ///< Tableau contenant les entités présents dans le jeu
int column_number; ///< Nombre de colonne de game_grid
int row_number; ///< Nomber de ligne de game_grid
struct Player *position; ///< Positioin du joueur
struct Goal *tabGoal; ///< Liste des but
int number_goal; ///< nombre de goal
/** Trouve l'indice a partire d'une coordonnée
* revoye un int
*
* @param grid la struct grid pour recuperer la taille total du tableau
* @param col position colonne
* @param row position ligne
*/
int coordonner_vers_indice(struct Grid *grid, int col, int row);
/** Initialise un grid templie de NONE
*
* @param widht Hauteur du tableau
* @param height Largueur du tableau
*/
enum CaseType *init_grid(int width, int height);
/** Initialise les coordonner du player en 0, 0
*
*/
/** Initialise l'emsemble de la structure grid
*
* @param widht Hauteur du tableau
* @param height Largueur du tableau
*/
struct Grid *new_grid(int width, int height);
/** Initialise dans la struct grid un niveau demander
*
* @param file_path un fichier .txt avec un niveau du sokoban dedans
*/
struct Grid *init_level(const char *file_path);
/** Cherche un element de la grid
*
* @param grid struct grid pour chercher dans la grid
* @param col l'emplacement colone de la donnée demander
* @param row l'emplacement ligne de la donnée demander
*/
enum CaseType get_grid(struct Grid *grid, int col, int row);
/** Cherche si la coordonner donner et un goal
* renovoye -1 si il a pas de goals a l'emplacement demander sinon renvoye 1
*
* @param grid struct grid pour chercher dans la grid
* @param col l'emplacement colone
* @param row l'emplacement ligne
*/
int get_goal(struct Grid *grid, int col, int row);
/** Affiche la grid qui se trouvent dans la struct grid
*
* @param grid struct grid
*/
/** Cherche un element de la grid
*
* @param grid struct grid pour chercher dans la grid
* @param col l'emplacement colone de la nouvelle valeur
* @param row l'emplacement ligne de la nouvelle valeur
* @param new_valeur nouvelle valeur a l'emplacement demander
*/
void change_cell_grid(struct Grid *grid, int col, int row, enum CaseType new_valeur);
/** Libere tout les donner qui se trouve dans la structure
*
* @param grid struct grid
*/