\doxysection{Référence du fichier function.\+c}
\label{function_8c}\index{function.c@{function.c}}
{\ttfamily \#include "{}../include/function.\+h"{}}\newline
{\ttfamily \#include "{}../include/display.\+h"{}}\newline
{\ttfamily \#include "{}../include/read.\+h"{}}\newline
{\ttfamily \#include $<$SDL2/\+SDL\+\_\+events.\+h$>$}\newline
{\ttfamily \#include $<$SDL2/\+SDL\+\_\+image.\+h$>$}\newline
{\ttfamily \#include $<$SDL2/\+SDL\+\_\+keycode.\+h$>$}\newline
{\ttfamily \#include $<$SDL2/\+SDL\+\_\+rect.\+h$>$}\newline
{\ttfamily \#include $<$SDL2/\+SDL\+\_\+render.\+h$>$}\newline
{\ttfamily \#include $<$SDL2/\+SDL\+\_\+scancode.\+h$>$}\newline
{\ttfamily \#include $<$SDL2/\+SDL\+\_\+timer.\+h$>$}\newline
{\ttfamily \#include $<$stdbool.\+h$>$}\newline
{\ttfamily \#include $<$stdio.\+h$>$}\newline
{\ttfamily \#include $<$stdlib.\+h$>$}\newline
{\ttfamily \#include $<$time.\+h$>$}\newline
Graphe des dépendances par inclusion de function.\+c\+:
% FIG 0
\doxysubsubsection*{Fonctions}
\begin{DoxyCompactItemize}
\item 
char $\ast$$\ast$ \textbf{ creat\+Area2D} (const int x, const int y)
\begin{DoxyCompactList}\small\item\em Cette fonction permet de creer une liste 2D. \end{DoxyCompactList}\item 
void \textbf{ free2D} (char $\ast$$\ast$tab, int x)
\begin{DoxyCompactList}\small\item\em Cette fontion permet de liberer l\textquotesingle{}espace tu tableau 2D de char. \end{DoxyCompactList}\item 
char \textbf{ can\+IGo\+Direction} (char value\+Of\+NCase, char value\+Of\+NPlus\+One\+Case)
\begin{DoxyCompactList}\small\item\em La fontction permet de savoir si le joueur peut ce deplacer dans une direction. \end{DoxyCompactList}\item 
int \textbf{ move} (char $\ast$$\ast$tab, \textbf{ vect} $\ast$player\+Pos, \textbf{ vect} direction, \textbf{ score} $\ast$score\+\_\+user)
\begin{DoxyCompactList}\small\item\em Cette fonction effectue les deplacements du joueur et des boites en fonction de la situation. \end{DoxyCompactList}\item 
int \textbf{ in\+Game\+Loop} (char $\ast$$\ast$tab2d, \textbf{ vect} $\ast$dim\+\_\+tab, \textbf{ vect} $\ast$player\+Pos, \textbf{ vect} $\ast$targets, int nbr\+\_\+targets, \textbf{ dis} $\ast$display\+\_\+user, \textbf{ score} $\ast$score\+\_\+user, bool menu)
\begin{DoxyCompactList}\small\item\em La fonction permet de faire la boucle de jeu et le menu. \end{DoxyCompactList}\item 
int \textbf{ in\+Editor\+Loop} (char $\ast$$\ast$tab2d, \textbf{ vect} $\ast$dim\+\_\+tab, \textbf{ vect} $\ast$player\+Pos, \textbf{ dis} $\ast$display\+\_\+user, \textbf{ score} $\ast$score\+\_\+user, int num\+\_\+fichier)
\begin{DoxyCompactList}\small\item\em La fonction permet de faire la boucle de l\textquotesingle{}éditeur. \end{DoxyCompactList}\item 
int \textbf{ title\+Screen} (\textbf{ dis} $\ast$display\+\_\+user)
\begin{DoxyCompactList}\small\item\em La fonction permet d\textquotesingle{} afficher le title screen. \end{DoxyCompactList}\item 
bool \textbf{ is\+Win} (char $\ast$$\ast$tab2d, \textbf{ vect} $\ast$targets, int nbr\+\_\+targets)
\begin{DoxyCompactList}\small\item\em Cette fonction verrifie si la partie est gagnante. \end{DoxyCompactList}\item 
bool \textbf{ islose} (char $\ast$$\ast$tab2d, const int N)
\begin{DoxyCompactList}\small\item\em La fonction renvois si la partie est perdante. \end{DoxyCompactList}\item 
\textbf{ vect} \textbf{ plus\+Vect} (\textbf{ vect} one, \textbf{ vect} two)
\begin{DoxyCompactList}\small\item\em La fonction fait une addition de vecteur, (x1+x2, y1+y2). \end{DoxyCompactList}\item 
\label{function_8c_a74650c59d33ff53d62ca3a3f8f56a68c} 
int {\bfseries length\+Vect} (\textbf{ vect} vector)
\begin{DoxyCompactList}\small\item\em Renvois la longeur Manhattan. \end{DoxyCompactList}\item 
bool \textbf{ block\+Box} (char $\ast$$\ast$tab2d, \textbf{ vect} box\+\_\+coor)
\begin{DoxyCompactList}\small\item\em La fonction permet de savoir si une boite est dans une situation ou le joueur ne poura pas la debloqué. \end{DoxyCompactList}\item 
char $\ast$ \textbf{ time\+To\+Text} (time\+\_\+t time)
\begin{DoxyCompactList}\small\item\em Cette fonction renvois transforme le forma time en texte. (min\+:sec) \end{DoxyCompactList}\item 
void \textbf{ null\+Score} (\textbf{ score} $\ast$player\+\_\+score)
\begin{DoxyCompactList}\small\item\em Mets à 0 le score. \end{DoxyCompactList}\item 
void \textbf{ win\+Or\+Lose\+Loop} (\textbf{ dis} $\ast$display\+\_\+user, \textbf{ score} $\ast$score\+\_\+user, bool win)
\begin{DoxyCompactList}\small\item\em Fonction de loop pour la win ou la lose. \end{DoxyCompactList}\item 
\label{function_8c_aeac9c46be252cd970406e3a2391b8e8c} 
unsigned int {\bfseries score\+Calculator} (\textbf{ score} $\ast$score\+\_\+user, bool win)
\end{DoxyCompactItemize}


\doxysubsection{Description détaillée}
Ce fichier contient toute les fonction utile pour le jeu. Sauf pour l\textquotesingle{}affichage. 

\doxysubsection{Documentation des fonctions}
\index{function.c@{function.c}!blockBox@{blockBox}}
\index{blockBox@{blockBox}!function.c@{function.c}}
\doxysubsubsection{blockBox()}
{\footnotesize\ttfamily \label{function_8c_ac51249b2f7941ca06e6a614e071dd444} 
bool block\+Box (\begin{DoxyParamCaption}\item[{char $\ast$$\ast$}]{tab2d}{, }\item[{\textbf{ vect}}]{box\+\_\+coor}{}\end{DoxyParamCaption})}



La fonction permet de savoir si une boite est dans une situation ou le joueur ne poura pas la debloqué. 


\begin{DoxyParams}{Paramètres}
{\em tab2d} & Le tableau 2D carre du plateau de jeu. \\
\hline
{\em box\+\_\+coor} & Les corrdonnée de la boite que la fonction test. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Renvoie}
True si la la boite est bloquer, sinon false. 
\end{DoxyReturn}
Voici le graphe d\textquotesingle{}appel pour cette fonction \+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=234pt]{function_8c_ac51249b2f7941ca06e6a614e071dd444_cgraph}
\end{center}
\end{figure}
Voici le graphe des appelants de cette fonction \+:
% FIG 1
\index{function.c@{function.c}!canIGoDirection@{canIGoDirection}}
\index{canIGoDirection@{canIGoDirection}!function.c@{function.c}}
\doxysubsubsection{canIGoDirection()}
{\footnotesize\ttfamily \label{function_8c_a76df2bc0c692d3397837706a6852ac36} 
char can\+IGo\+Direction (\begin{DoxyParamCaption}\item[{char}]{value\+Of\+NCase}{, }\item[{char}]{value\+Of\+NPlus\+One\+Case}{}\end{DoxyParamCaption})}



La fontction permet de savoir si le joueur peut ce deplacer dans une direction. 


\begin{DoxyParams}{Paramètres}
{\em value\+Of\+NCase} & La valeur de la case dans la direction que le joueur veut aller. \\
\hline
{\em value\+Of\+NPlus\+One\+Case} & La valeur de la case dans la direction que le joueur veut aller mais une fois de plus. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Renvoie}
0 Si c\textquotesingle{}est un mur devant le joueur, 1 si c\textquotesingle{}est vide devant le joueur, 2 si c\textquotesingle{}est une boite mais qu\textquotesingle{}on peux la pousser ,3 si le joueur pousse une boite sur un point d\textquotesingle{}interer, 4 si le joueur bouge sur un point d\textquotesingle{}interer, 5 si le joueur peux pousser une boite mais le joueur se place sur un point d\textquotesingle{}interer et 6 si le joueur pousse une boite sur un point d\textquotesingle{}interer et que le joueur est aussi sur un point d\textquotesingle{}interer. 7 si value\+Of\+NCase est un bouton. 
\end{DoxyReturn}
Voici le graphe des appelants de cette fonction \+:
% FIG 2
\index{function.c@{function.c}!creatArea2D@{creatArea2D}}
\index{creatArea2D@{creatArea2D}!function.c@{function.c}}
\doxysubsubsection{creatArea2D()}
{\footnotesize\ttfamily \label{function_8c_a1d06514900b90ce163ebe2d5aefc16db} 
char $\ast$$\ast$ creat\+Area2D (\begin{DoxyParamCaption}\item[{const int}]{x}{, }\item[{const int}]{y}{}\end{DoxyParamCaption})}



Cette fonction permet de creer une liste 2D. 


\begin{DoxyParams}{Paramètres}
{\em x} & Nombre de ligne. \\
\hline
{\em y} & Nombre de colonne. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Renvoie}
Le pointeur du tableau 2D de char (1 octet). 
\end{DoxyReturn}
\index{function.c@{function.c}!free2D@{free2D}}
\index{free2D@{free2D}!function.c@{function.c}}
\doxysubsubsection{free2D()}
{\footnotesize\ttfamily \label{function_8c_a9011ea69a97e2101aa9bcc52cc60d4ce} 
void free2D (\begin{DoxyParamCaption}\item[{char $\ast$$\ast$}]{tab}{, }\item[{int}]{x}{}\end{DoxyParamCaption})}



Cette fontion permet de liberer l\textquotesingle{}espace tu tableau 2D de char. 


\begin{DoxyParams}{Paramètres}
{\em tab} & Le tableau 2D. \\
\hline
{\em x} & Le nombre de ligne. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Renvoie}
Void. 
\end{DoxyReturn}
\index{function.c@{function.c}!inEditorLoop@{inEditorLoop}}
\index{inEditorLoop@{inEditorLoop}!function.c@{function.c}}
\doxysubsubsection{inEditorLoop()}
{\footnotesize\ttfamily \label{function_8c_a244a34e6a3547ce48d78b64a9a6b030f} 
int in\+Editor\+Loop (\begin{DoxyParamCaption}\item[{char $\ast$$\ast$}]{tab2d}{, }\item[{\textbf{ vect} $\ast$}]{dim\+\_\+tab}{, }\item[{\textbf{ vect} $\ast$}]{player\+Pos}{, }\item[{\textbf{ dis} $\ast$}]{display\+\_\+user}{, }\item[{\textbf{ score} $\ast$}]{score\+\_\+user}{, }\item[{int}]{num\+\_\+fichier}{}\end{DoxyParamCaption})}



La fonction permet de faire la boucle de l\textquotesingle{}éditeur. 


\begin{DoxyParams}{Paramètres}
{\em tab2d} & Le tableau 2d carre. \\
\hline
{\em N} & LE nombre d\textquotesingle{}element de tab2d. \\
\hline
{\em player\+Pos} & La position de depart du joueur. \\
\hline
{\em targets} & Le tableau de toutes les positions des points d\textquotesingle{}interer de la maps. \\
\hline
{\em int} & nbr\+\_\+targets Le nombre de point d\textquotesingle{}interer. \\
\hline
{\em display\+\_\+user} & Tout les information SDL pour afficher le jeu. \\
\hline
{\em score\+\_\+user} & Toute les données nécessaire pour calculer le score fini du joueur. \\
\hline
{\em num\+\_\+fichier} & Simplement le numéro de la map actuel. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Renvoie}
renvoie -\/2 ce qui signifie l\textquotesingle{}editeur 
\end{DoxyReturn}
Voici le graphe d\textquotesingle{}appel pour cette fonction \+:
% FIG 3
\index{function.c@{function.c}!inGameLoop@{inGameLoop}}
\index{inGameLoop@{inGameLoop}!function.c@{function.c}}
\doxysubsubsection{inGameLoop()}
{\footnotesize\ttfamily \label{function_8c_a7f8e67bce9078c159778bbe2f57e9d2f} 
int in\+Game\+Loop (\begin{DoxyParamCaption}\item[{char $\ast$$\ast$}]{tab2d}{, }\item[{\textbf{ vect} $\ast$}]{dim\+\_\+tab}{, }\item[{\textbf{ vect} $\ast$}]{player\+Pos}{, }\item[{\textbf{ vect} $\ast$}]{targets}{, }\item[{int}]{nbr\+\_\+targets}{, }\item[{\textbf{ dis} $\ast$}]{display\+\_\+user}{, }\item[{\textbf{ score} $\ast$}]{score\+\_\+user}{, }\item[{bool}]{menu}{}\end{DoxyParamCaption})}



La fonction permet de faire la boucle de jeu et le menu. 


\begin{DoxyParams}{Paramètres}
{\em tab2d} & Le tableau 2d carre. \\
\hline
{\em N} & LE nombre d\textquotesingle{}element de tab2d. \\
\hline
{\em player\+Pos} & La position de depart du joueur. \\
\hline
{\em targets} & Le tableau de toutes les positions des points d\textquotesingle{}interer de la maps. \\
\hline
{\em int} & nbr\+\_\+targets Le nombre de point d\textquotesingle{}interer. \\
\hline
{\em display\+\_\+user} & Tout les information SDL pour afficher le jeu. \\
\hline
{\em score\+\_\+user} & Toute les données nécessaire pour calculer le score fini du joueur. \\
\hline
{\em menu} & True si c\textquotesingle{}est la loop du menu. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Renvoie}
L\textquotesingle{}indice de la map si c\textquotesingle{}est un menu, sinon renvoie -\/1 
\end{DoxyReturn}
Voici le graphe d\textquotesingle{}appel pour cette fonction \+:
% FIG 4
\index{function.c@{function.c}!islose@{islose}}
\index{islose@{islose}!function.c@{function.c}}
\doxysubsubsection{islose()}
{\footnotesize\ttfamily \label{function_8c_ac155bb183b0c26d19758d8d065baf14f} 
bool islose (\begin{DoxyParamCaption}\item[{char $\ast$$\ast$}]{tab2d}{, }\item[{const int}]{N}{}\end{DoxyParamCaption})}



La fonction renvois si la partie est perdante. 


\begin{DoxyParams}{Paramètres}
{\em tab2d} & Le tableau 2d carre du plateau de jeu. \\
\hline
{\em N} & Le nombre d\textquotesingle{}éléments dans le tab2d. (zone de jeu est carré) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Renvoie}
True si c\textquotesingle{}est perdu, false si c\textquotesingle{}est pas perdu a cette instant. 
\end{DoxyReturn}
Voici le graphe d\textquotesingle{}appel pour cette fonction \+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=312pt]{function_8c_ac155bb183b0c26d19758d8d065baf14f_cgraph}
\end{center}
\end{figure}
\index{function.c@{function.c}!isWin@{isWin}}
\index{isWin@{isWin}!function.c@{function.c}}
\doxysubsubsection{isWin()}
{\footnotesize\ttfamily \label{function_8c_a618903fbb7302d98ef0f3e2e6b35b99a} 
bool is\+Win (\begin{DoxyParamCaption}\item[{char $\ast$$\ast$}]{tab2d}{, }\item[{\textbf{ vect} $\ast$}]{targets}{, }\item[{int}]{nbr\+\_\+targets}{}\end{DoxyParamCaption})}



Cette fonction verrifie si la partie est gagnante. 


\begin{DoxyParams}{Paramètres}
{\em tab2d} & Le tableau 2D du jeu. \\
\hline
{\em targets} & Le tableau de toute les positions des points d\textquotesingle{}interer. \\
\hline
{\em nbr\+\_\+targets} & Le nombre de points d\textquotesingle{}interer. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Renvoie}
True si le joueur a remplis tout les points d\textquotesingle{}interer, false si ce n\textquotesingle{}est pas le cas . 
\end{DoxyReturn}
\index{function.c@{function.c}!move@{move}}
\index{move@{move}!function.c@{function.c}}
\doxysubsubsection{move()}
{\footnotesize\ttfamily \label{function_8c_a9c9b1fdde1684178393ffe6104ab615d} 
int move (\begin{DoxyParamCaption}\item[{char $\ast$$\ast$}]{tab}{, }\item[{\textbf{ vect} $\ast$}]{player\+Pos}{, }\item[{\textbf{ vect}}]{direction}{, }\item[{\textbf{ score} $\ast$}]{score\+\_\+user}{}\end{DoxyParamCaption})}



Cette fonction effectue les deplacements du joueur et des boites en fonction de la situation. 


\begin{DoxyParams}{Paramètres}
{\em tab} & Le tableau 2D du plateau de jeu. \\
\hline
{\em playerpos} & La position actuel du joueur. \\
\hline
{\em direction} & La direction que le joueur veut effectuer. \\
\hline
{\em score\+\_\+user} & Toutes les données nécessaire pour calculer le score fini du joueur. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Renvoie}
int return 1 si le joueur n\textquotesingle{}a pas bouger. 
\end{DoxyReturn}
Voici le graphe d\textquotesingle{}appel pour cette fonction \+:
% FIG 5
Voici le graphe des appelants de cette fonction \+:
% FIG 6
\index{function.c@{function.c}!nullScore@{nullScore}}
\index{nullScore@{nullScore}!function.c@{function.c}}
\doxysubsubsection{nullScore()}
{\footnotesize\ttfamily \label{function_8c_a4a66f9d998c95fde67d6f89fef1fded5} 
void null\+Score (\begin{DoxyParamCaption}\item[{\textbf{ score} $\ast$}]{player\+\_\+score}{}\end{DoxyParamCaption})}



Mets à 0 le score. 


\begin{DoxyParams}{Paramètres}
{\em player\+\_\+score} & Le score a mettre à 0. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Renvoie}
void 
\end{DoxyReturn}
\index{function.c@{function.c}!plusVect@{plusVect}}
\index{plusVect@{plusVect}!function.c@{function.c}}
\doxysubsubsection{plusVect()}
{\footnotesize\ttfamily \label{function_8c_a5b10e69716d92eadf2ed0b3942cb9d4d} 
\textbf{ vect} plus\+Vect (\begin{DoxyParamCaption}\item[{\textbf{ vect}}]{one}{, }\item[{\textbf{ vect}}]{two}{}\end{DoxyParamCaption})}



La fonction fait une addition de vecteur, (x1+x2, y1+y2). 


\begin{DoxyParams}{Paramètres}
{\em one} & Premier vecteur. \\
\hline
{\em two} & Deuzieme vecteur. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Renvoie}
vect Un vecteur de l\textquotesingle{}addition de one et two. 
\end{DoxyReturn}
Voici le graphe des appelants de cette fonction \+:
% FIG 7
\index{function.c@{function.c}!timeToText@{timeToText}}
\index{timeToText@{timeToText}!function.c@{function.c}}
\doxysubsubsection{timeToText()}
{\footnotesize\ttfamily \label{function_8c_a51c9ba7a24383f1b20dcedfcb570aab5} 
char $\ast$ time\+To\+Text (\begin{DoxyParamCaption}\item[{time\+\_\+t}]{time}{}\end{DoxyParamCaption})}



Cette fonction renvois transforme le forma time en texte. (min\+:sec) 


\begin{DoxyParams}{Paramètres}
{\em time} & Le temps qu\textquotesingle{}on veux convertire. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Renvoie}
char Le string du texte. 
\end{DoxyReturn}
Voici le graphe des appelants de cette fonction \+:
% FIG 8
\index{function.c@{function.c}!titleScreen@{titleScreen}}
\index{titleScreen@{titleScreen}!function.c@{function.c}}
\doxysubsubsection{titleScreen()}
{\footnotesize\ttfamily \label{function_8c_ad3517d7c8da5b33a96d376d7b07911c1} 
int title\+Screen (\begin{DoxyParamCaption}\item[{\textbf{ dis} $\ast$}]{display\+\_\+user}{}\end{DoxyParamCaption})}



La fonction permet d\textquotesingle{} afficher le title screen. 


\begin{DoxyParams}{Paramètres}
{\em display\+\_\+user} & Tout les information SDL pour afficher le jeu. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Renvoie}
renvoie -\/3 ce qui signifie le title screen 
\end{DoxyReturn}
\index{function.c@{function.c}!winOrLoseLoop@{winOrLoseLoop}}
\index{winOrLoseLoop@{winOrLoseLoop}!function.c@{function.c}}
\doxysubsubsection{winOrLoseLoop()}
{\footnotesize\ttfamily \label{function_8c_a2dc9de2f6fd2bed3619d7ce8c1f05590} 
void win\+Or\+Lose\+Loop (\begin{DoxyParamCaption}\item[{\textbf{ dis} $\ast$}]{display\+\_\+user}{, }\item[{\textbf{ score} $\ast$}]{score\+\_\+user}{, }\item[{bool}]{win}{}\end{DoxyParamCaption})}



Fonction de loop pour la win ou la lose. 


\begin{DoxyParams}{Paramètres}
{\em display\+\_\+user} & Tout les information du display de l\textquotesingle{}utilisateur utile. \\
\hline
{\em win} & Si on veut un affichage de victoire ou non. \\
\hline
\end{DoxyParams}
