\hypertarget{calculs_8c}{\section{Référence du fichier calculs.\-c}
\label{calculs_8c}\index{calculs.\-c@{calculs.\-c}}
}


fonctions pour les calculs  


{\ttfamily \#include $<$stdlib.\-h$>$}\\*
{\ttfamily \#include \char`\"{}calculs.\-h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}modelisation.\-h\char`\"{}}\\*
\subsection*{Fonctions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{calculs_8c_ab9b1a2f35770a1d7405f5bc75a6bdd1f}{inverse\-Case} (int $\ast$$\ast$terrain, int x, int y)
\begin{DoxyCompactList}\small\item\em inverse la valeur de la case donnée \end{DoxyCompactList}\item 
void \hyperlink{calculs_8c_af186467e1fe459c1de94565b1143653e}{applique\-\_\-clic} (int $\ast$$\ast$plateau\-Actuel, \hyperlink{structcoord}{coord} $\ast$cellule)
\begin{DoxyCompactList}\small\item\em applique le clic sur le plateau aux coordonnées données \end{DoxyCompactList}\item 
void \hyperlink{calculs_8c_aee2556582d243fac81dd6a25e580c70f}{applique\-\_\-partie} (int $\ast$$\ast$plateau\-Initial, \hyperlink{struct_partie}{Partie} $\ast$partie)
\begin{DoxyCompactList}\small\item\em applique la partie au plateau \end{DoxyCompactList}\item 
void \hyperlink{calculs_8c_a09ebefeb57db1774a475ddf70a1c5112}{plateau\-\_\-init\-\_\-test} (int $\ast$$\ast$plateau\-Vierge)
\begin{DoxyCompactList}\small\item\em initialise le plateau \end{DoxyCompactList}\item 
int \hyperlink{calculs_8c_ab30bf92b204a2e0e9cb8ec39456615f8}{plateau\-\_\-gagnant} (int $\ast$$\ast$plateau\-Actuel)
\begin{DoxyCompactList}\small\item\em test si le plateau est un plateau gagnant \end{DoxyCompactList}\item 
int \hyperlink{calculs_8c_a31f464eeb624504f520a10c8d8dbe103}{partie\-\_\-gagnante} (int $\ast$$\ast$plateau\-Initial, \hyperlink{struct_partie}{Partie} $\ast$partie)
\begin{DoxyCompactList}\small\item\em test si la partie aboutie à un plateau gagnant \end{DoxyCompactList}\item 
int \hyperlink{calculs_8c_aae36b3c3e005deda5162db32d15d1657}{codage\-Plateau} (int $\ast$$\ast$plateau)
\begin{DoxyCompactList}\small\item\em associe un entier à la configuration du plateau \end{DoxyCompactList}\item 
\hyperlink{structcoord}{coord} $\ast$ \hyperlink{calculs_8c_ad246f730778d86bd800ab1b46f3dfd0f}{int08\-To\-Coord} (int int08)
\begin{DoxyCompactList}\small\item\em décompose int08 en coordonnées comprises entre 0-\/2 et 0-\/2 \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Description détaillée}
fonctions pour les calculs \begin{DoxyAuthor}{Auteur}
Tàzio Gennuso 
\end{DoxyAuthor}
\begin{DoxyVersion}{Version}
1.\-7 
\end{DoxyVersion}
\begin{DoxyDate}{Date}
05/01/2015
\end{DoxyDate}
fonctions purement calculatoires nécessaires pour le moteur de jeu 

\subsection{Documentation des fonctions}
\hypertarget{calculs_8c_af186467e1fe459c1de94565b1143653e}{\index{calculs.\-c@{calculs.\-c}!applique\-\_\-clic@{applique\-\_\-clic}}
\index{applique\-\_\-clic@{applique\-\_\-clic}!calculs.c@{calculs.\-c}}
\subsubsection[{applique\-\_\-clic}]{\setlength{\rightskip}{0pt plus 5cm}void applique\-\_\-clic (
\begin{DoxyParamCaption}
\item[{int $\ast$$\ast$}]{plateau\-Actuel, }
\item[{{\bf coord} $\ast$}]{cellule}
\end{DoxyParamCaption}
)}}\label{calculs_8c_af186467e1fe459c1de94565b1143653e}


applique le clic sur le plateau aux coordonnées données 


\begin{DoxyParams}{Paramètres}
{\em int$\ast$$\ast$} & plateau\-Actuel le plateau dans l'état actuel dans lequel il se trouve à ce moment de la partie \\
\hline
{\em coord} & $\ast$cellule coordonnées de la case\\
\hline
\end{DoxyParams}
applique le clic sur le plateau aux coordonnées données en prenant en compte les différentes positions possibles \begin{DoxyReturn}{Renvoie}
pas de valeur de retour 
\end{DoxyReturn}
\hypertarget{calculs_8c_aee2556582d243fac81dd6a25e580c70f}{\index{calculs.\-c@{calculs.\-c}!applique\-\_\-partie@{applique\-\_\-partie}}
\index{applique\-\_\-partie@{applique\-\_\-partie}!calculs.c@{calculs.\-c}}
\subsubsection[{applique\-\_\-partie}]{\setlength{\rightskip}{0pt plus 5cm}void applique\-\_\-partie (
\begin{DoxyParamCaption}
\item[{int $\ast$$\ast$}]{plateau\-Initial, }
\item[{{\bf Partie} $\ast$}]{partie}
\end{DoxyParamCaption}
)}}\label{calculs_8c_aee2556582d243fac81dd6a25e580c70f}


applique la partie au plateau 


\begin{DoxyParams}{Paramètres}
{\em int$\ast$$\ast$} & plateau\-Initial le plateau duquel on part pour appliquer la partie \\
\hline
{\em \hyperlink{struct_partie}{Partie}} & $\ast$partie la partie à appliquer au plateau\\
\hline
\end{DoxyParams}
applique coup par coup la partie au plateau \begin{DoxyReturn}{Renvoie}
pas de valeur de retour 
\end{DoxyReturn}
\hypertarget{calculs_8c_aae36b3c3e005deda5162db32d15d1657}{\index{calculs.\-c@{calculs.\-c}!codage\-Plateau@{codage\-Plateau}}
\index{codage\-Plateau@{codage\-Plateau}!calculs.c@{calculs.\-c}}
\subsubsection[{codage\-Plateau}]{\setlength{\rightskip}{0pt plus 5cm}int codage\-Plateau (
\begin{DoxyParamCaption}
\item[{int $\ast$$\ast$}]{plateau}
\end{DoxyParamCaption}
)}}\label{calculs_8c_aae36b3c3e005deda5162db32d15d1657}


associe un entier à la configuration du plateau 


\begin{DoxyParams}{Paramètres}
{\em int$\ast$$\ast$} & plateau plateau à encoder\\
\hline
\end{DoxyParams}
chaque case du plateau représente une puissance de 2 (entre 0 et 8), en additionnant celles dont la case est noire, on obtient un nombre unique compris entre 0 et 511 \begin{DoxyReturn}{Renvoie}
renvoie un entier compris entre 0 et 511 qui représente la configuration du plateau 
\end{DoxyReturn}
\hypertarget{calculs_8c_ad246f730778d86bd800ab1b46f3dfd0f}{\index{calculs.\-c@{calculs.\-c}!int08\-To\-Coord@{int08\-To\-Coord}}
\index{int08\-To\-Coord@{int08\-To\-Coord}!calculs.c@{calculs.\-c}}
\subsubsection[{int08\-To\-Coord}]{\setlength{\rightskip}{0pt plus 5cm}{\bf coord} $\ast$ int08\-To\-Coord (
\begin{DoxyParamCaption}
\item[{int}]{int08}
\end{DoxyParamCaption}
)}}\label{calculs_8c_ad246f730778d86bd800ab1b46f3dfd0f}


décompose int08 en coordonnées comprises entre 0-\/2 et 0-\/2 


\begin{DoxyParams}{Paramètres}
{\em int} & int08 entier compris entre 0 et 8\\
\hline
\end{DoxyParams}
int08 représente la coordonnée d'un tableau de 9 cases d'une dimension, on transforme int08 en les coordonnées d'un tableau de 9 cases de deux dimensions \begin{DoxyReturn}{Renvoie}
les coordonnées d'une case d'un tableau 3x3 
\end{DoxyReturn}
\hypertarget{calculs_8c_ab9b1a2f35770a1d7405f5bc75a6bdd1f}{\index{calculs.\-c@{calculs.\-c}!inverse\-Case@{inverse\-Case}}
\index{inverse\-Case@{inverse\-Case}!calculs.c@{calculs.\-c}}
\subsubsection[{inverse\-Case}]{\setlength{\rightskip}{0pt plus 5cm}void inverse\-Case (
\begin{DoxyParamCaption}
\item[{int $\ast$$\ast$}]{terrain, }
\item[{int}]{x, }
\item[{int}]{y}
\end{DoxyParamCaption}
)}}\label{calculs_8c_ab9b1a2f35770a1d7405f5bc75a6bdd1f}


inverse la valeur de la case donnée 


\begin{DoxyParams}{Paramètres}
{\em int$\ast$$\ast$} & terrain le plateau dans l'état actuel dans lequel il se trouve à ce moment de la partie \\
\hline
{\em int} & x abscisse de la case \\
\hline
{\em int} & y ordonnée de la case\\
\hline
\end{DoxyParams}
met la case à 1 si elle est à 0 et inversement \begin{DoxyReturn}{Renvoie}
pas de valeur de retour 
\end{DoxyReturn}
\hypertarget{calculs_8c_a31f464eeb624504f520a10c8d8dbe103}{\index{calculs.\-c@{calculs.\-c}!partie\-\_\-gagnante@{partie\-\_\-gagnante}}
\index{partie\-\_\-gagnante@{partie\-\_\-gagnante}!calculs.c@{calculs.\-c}}
\subsubsection[{partie\-\_\-gagnante}]{\setlength{\rightskip}{0pt plus 5cm}int partie\-\_\-gagnante (
\begin{DoxyParamCaption}
\item[{int $\ast$$\ast$}]{plateau\-Initial, }
\item[{{\bf Partie} $\ast$}]{partie}
\end{DoxyParamCaption}
)}}\label{calculs_8c_a31f464eeb624504f520a10c8d8dbe103}


test si la partie aboutie à un plateau gagnant 


\begin{DoxyParams}{Paramètres}
{\em int$\ast$$\ast$} & plateau\-Initial le plateau duquel on part pour appliquer la partie \\
\hline
{\em \hyperlink{struct_partie}{Partie}} & $\ast$partie la partie à appliquer au plateau\\
\hline
\end{DoxyParams}
applique coup par coup la partie au plateau et determine si le plateau obtenu au final est gagnant \begin{DoxyReturn}{Renvoie}
renvoie 1 si le plateau final est gagnant, 0 sinon 
\end{DoxyReturn}
\hypertarget{calculs_8c_ab30bf92b204a2e0e9cb8ec39456615f8}{\index{calculs.\-c@{calculs.\-c}!plateau\-\_\-gagnant@{plateau\-\_\-gagnant}}
\index{plateau\-\_\-gagnant@{plateau\-\_\-gagnant}!calculs.c@{calculs.\-c}}
\subsubsection[{plateau\-\_\-gagnant}]{\setlength{\rightskip}{0pt plus 5cm}int plateau\-\_\-gagnant (
\begin{DoxyParamCaption}
\item[{int $\ast$$\ast$}]{plateau\-Actuel}
\end{DoxyParamCaption}
)}}\label{calculs_8c_ab30bf92b204a2e0e9cb8ec39456615f8}


test si le plateau est un plateau gagnant 


\begin{DoxyParams}{Paramètres}
{\em int$\ast$$\ast$} & plateau\-Actuel plateau à tester\\
\hline
\end{DoxyParams}
test si toutes les cases du plateau valent 1 (sont noires) \begin{DoxyReturn}{Renvoie}
renvoie 1 si toutes les cases du plateau sont noires, 0 sinon 
\end{DoxyReturn}
\hypertarget{calculs_8c_a09ebefeb57db1774a475ddf70a1c5112}{\index{calculs.\-c@{calculs.\-c}!plateau\-\_\-init\-\_\-test@{plateau\-\_\-init\-\_\-test}}
\index{plateau\-\_\-init\-\_\-test@{plateau\-\_\-init\-\_\-test}!calculs.c@{calculs.\-c}}
\subsubsection[{plateau\-\_\-init\-\_\-test}]{\setlength{\rightskip}{0pt plus 5cm}void plateau\-\_\-init\-\_\-test (
\begin{DoxyParamCaption}
\item[{int $\ast$$\ast$}]{plateau\-Vierge}
\end{DoxyParamCaption}
)}}\label{calculs_8c_a09ebefeb57db1774a475ddf70a1c5112}


initialise le plateau 


\begin{DoxyParams}{Paramètres}
{\em int$\ast$$\ast$} & plateau\-Vierge plateau à initialiser\\
\hline
\end{DoxyParams}
initialise le plateau en fixant toutes les cases à 0 (blanc) \begin{DoxyReturn}{Renvoie}
pas de valeur de retour 
\end{DoxyReturn}
