diff --git a/function.c b/function.c index 766dc69..60736c4 100644 --- a/function.c +++ b/function.c @@ -14,7 +14,7 @@ /** * \brief Cette fonction permet de creer une liste 2D carre * \param N La valeur N est le nombre d'élément dans le tableau. -* \return Le tableau 2D carre +* \return Le pointeur du tableau 2D carre de char (1 octet). */ char **creatArea2D (const unsigned int N) { @@ -49,6 +49,12 @@ char **creatArea2D (const unsigned int N) return tab2d; } +/** +* \brief Cette fontion permet de liberer l'espace tu tableau 2D de char. +* \param tab Le tableau 2D. +* \param N Le nombre d'éléments. +* \return Void. +*/ void free2D (char **tab, int N) { int i; @@ -60,8 +66,17 @@ void free2D (char **tab, int N) return; } -short int canIGoDirection (short int valueOfNCase, - short int valueOfNPlusOneCase) +/** +* \brief La fontction permet de savoir si le joueur peut ce deplacer dans une direction. +* \param valueOfNCase La valeur de la case dans la direction que le joueur veut aller. +* \param valueOfNPlusOneCase La valeur de la case dans la direction que le joueur veut aller mais une fois de plus. +* \return 0 Si c'est un mur devant le joueur, 1 si c'est vide devant le joueur, 2 si c'est une boite mais qu'on peux la pousser +* ,3 si le joueur pousse une boite sur un point d'interer, 4 si le joueur bouge sur un point d'interer, 5 si le joueur peux pousser +* une boite mais le joueur se place sur un point d'interer et 6 si le joeuur pousse une boite sur un point d'interer et que le joueu +* est aussi sur un point d'interer. +*/ +char canIGoDirection (char valueOfNCase, + char valueOfNPlusOneCase) { if (valueOfNCase != WALL) { @@ -104,6 +119,15 @@ short int canIGoDirection (short int valueOfNCase, return 0; } +/** +* \brief Cette fonction effectue les deplacements du joueur et des boites en fonction de la situation. +* \param tab Le tableau 2D du plateau de jeu. +* \param playerpos La position actuel du joueur. +* \param direction La direction que le joueur veut effectuer. +* \param score_user Toutes les données nécessaire pour calculer le score fini du joueur. +* \return Void +* +*/ void move (char **tab, vect *playerPos, vect direction, score *score_user) { @@ -198,6 +222,18 @@ void move (char **tab, vect *playerPos, vect direction, } } +/** +* +* \brief La fonction permet de faire la boucle de jeu. +* \param tab2d Le tableau 2d carre. +* \param N LE nombre d'element de tab2d. +* \param playerPos La position de depart du joueur. +* \param targets Le tableau de toutes les positions des points d'interer de la maps. +* \param int nbr_targets Le nombre de point d'interer. +* \param display_user Tout les information SDL pour afficher le jeu. +* \param score_user Toute les données nécessaire pour calculer le score fini du joueur. +* \return Void +*/ void inGameLoop (char **tab2d, int N, vect *playerPos, vect *targets, int nbr_targets, dis *display_user, score *score_user) @@ -291,6 +327,13 @@ void inGameLoop (char **tab2d, int N, vect *playerPos, } } +/** +* \brief Cette fonction verrifie si la partie est gagnante. +* \param tab2d Le tableau 2D du jeu. +* \param targets Le tableau de toute les positions des points d'interer. +* \param nbr_targets Le nombre de points d'interer. +* \return True si le joueur a remplis tout les points d'interer, false si ce n'est pas le cas . +*/ bool isWin (char **tab2d, vect *targets, int nbr_targets) { int i; @@ -306,6 +349,13 @@ bool isWin (char **tab2d, vect *targets, int nbr_targets) return true; } +/** +* \brief La fonction renvois si la partie est perdante. +* \param tab2d Le tableau 2d carre du plateau de jeu. +* \param N Le nombre d'éléments dans le tab2d. +* \return True si c'est perdu, false si c'est pas perdu a cette instant. +* +*/ bool islose (char **tab2d, const int N) { int x = 0, y = 0; @@ -331,6 +381,12 @@ bool islose (char **tab2d, const int N) return false; } +/** +* \brief La fonction fait une addition de vecteur, (x1+x2, y1+y2). +* \param one Premier vecteur. +* \param two Deuzieme vecteur. +* \return vect Un vecteur de l'addition de one et two. +*/ vect plusVect (vect one, vect two) { vect result; @@ -339,8 +395,17 @@ vect plusVect (vect one, vect two) return result; } +/** +* \brief Renvois la longeur Manhattan +*/ int lengthVect (vect vector) { return abs (vector.x) + abs (vector.y); } +/** +* \brief La fonction permet de savoir si une boite est dans une situation ou le joueur ne poura pas la debloqué. +* \param tab2d Le tableau 2D carre du plateau de jeu. +* \param box_coor Les corrdonnée de la boite que la fonction test. +* \return True si la la boite est bloquer, sinon false. +*/ bool blockBox (char **tab2d, vect box_coor) { int nbr_touch = 0; @@ -441,6 +506,11 @@ bool blockBox (char **tab2d, vect box_coor) exit (0); } +/** +* \brief Cette fonction renvois transforme le forma time en texte. (min:sec) +* \param time Le temps qu'on veux convertire. +* \return char Le string du texte. +*/ char *timeToText (time_t time) { char *result = calloc (20, sizeof (char));