correction orthographe
This commit is contained in:
parent
ac351463bf
commit
c9d36b7cd1
2 changed files with 23 additions and 24 deletions
BIN
rendu/rendu.pdf
BIN
rendu/rendu.pdf
Binary file not shown.
|
@ -69,22 +69,21 @@
|
|||
|
||||
\section{Présentation du Projet}
|
||||
\subsection{Introduction et règles du jeu}
|
||||
L'Heyawake est un puzzle joué dans une grille rectangulaire séparés en plusieurs aires dont le but
|
||||
est de colorés des cases en noir et blanc en accord avec les règles :
|
||||
L'Heyawake est un puzzle joué dans une grille rectangulaire séparée en plusieurs aires dont le but
|
||||
est de colorer des cases en noir et blanc en accord avec les règles :
|
||||
|
||||
\begin{listeFleche}
|
||||
\item Certaines aires contiennent un chiffre qui montre combien il y a de cases noires dans l'aire
|
||||
\begin{listeFleche}
|
||||
\item Aire avec un 0 ne doivent pas avoir de cases noires
|
||||
\item Aire avec un 1 contient une case noire
|
||||
\item Etc\dots
|
||||
\item Aire avec un 0 ne doit pas avoir de cases noires
|
||||
\item Aire avec un 1 contient une case noire, on répète ses étapes autant de fois qu'il le faut
|
||||
\end{listeFleche}
|
||||
\item Toutes les cases blanches doivent être connectés en un seul groupe, pas de groupe isolés, elles doivent toutes être reliés
|
||||
\item Deux cases noires de peuvent être l'un à côté de l'autre horizontalement et verticalement (en diagonale, c'est possible)
|
||||
\item Toutes les cases blanches doivent être connectées en un seul groupe, pas de groupes isolés, elles doivent toutes être reliées
|
||||
\item Deux cases noires ne peuvent être l'un à côté de l'autre horizontalement et verticalement (en diagonale, c'est possible)
|
||||
\begin{listeFleche}
|
||||
\item Ca veut dire que les cases noires doivent être que entourés de cases blanches
|
||||
\item Ça veut dire que les cases noires doivent n'être qu'entourer de cases blanches
|
||||
\end{listeFleche}
|
||||
\item Une rangée de case blanche ne peuvent pas être alignée au-delà de 2 aires
|
||||
\item Une rangée de case blanche ne peut pas être alignée au-delà de 2 aires
|
||||
\end{listeFleche}
|
||||
|
||||
\subsection{Réalisation}
|
||||
|
@ -92,23 +91,23 @@
|
|||
\item Mettre toutes les aires avec un 0 en blanc
|
||||
\item Mettre les aires avec 1 et que d'une case en noire
|
||||
\item Mettre des cases noires là où une rangée de cases blanches dans plus de 2 aires peut se faire
|
||||
\item Toujours mettre du blanc autour des celulles noires
|
||||
\item Toujours mettre du blanc autour des cases noires
|
||||
\begin{listeFleche}
|
||||
\item En suivant cette étape, quand on met une case noire dans une aire avec un chiffre 1, colore tout le reste de l'aire en blanc
|
||||
\end{listeFleche}
|
||||
\item Toujours verifié que les cases blanches ne sont pas piégés entre des cases noires
|
||||
\item Toujours vérifié que les cases blanches ne sont pas piégées entre des cases noires
|
||||
\begin{listeFleche}
|
||||
\item Ca implique que dans ce schéma suivant avec B une case blanche, N une case noire et X une case vide :
|
||||
\item Ça implique que dans ce schéma suivant avec B une case blanche, N une case noire et X une case vide :
|
||||
\begin{listeFleche}
|
||||
\item B X B $\rightarrow$ B B B
|
||||
\item N B N $\rightarrow$ N B N
|
||||
\item B N B $\rightarrow$ B N B
|
||||
\item Le X doit obligatoirement devenir blanc pour laisser une sortie à la case blanc qui se trouve entre les cases noires
|
||||
\item Le X doit obligatoirement devenir blanc pour laisser une sortie à la case blanche qui se trouve entre les cases noires
|
||||
\end{listeFleche}
|
||||
\end{listeFleche}
|
||||
\end{listeFleche}
|
||||
|
||||
Le programme se lance en appelant le prédicat \emph{run} avec comme argument une liste de listes des aires.
|
||||
Le programme se lance en appelant le prédicat \emph{\texttt{run}} avec comme argument une liste de listes des aires.
|
||||
|
||||
\begin{lstlisting}
|
||||
run([[0,0,1,1,2], [2,0,2,2,-1], [3,0,5,1,-1],
|
||||
|
@ -122,7 +121,7 @@ run([[0,0,1,1,2], [2,0,2,2,-1], [3,0,5,1,-1],
|
|||
\centering
|
||||
\includegraphics[width=5cm, height=5cm]{default}
|
||||
\caption{Puzzle de difficulté facile d'Heyawake}
|
||||
\label{fig:default}
|
||||
\label{fig:defaultFig}
|
||||
\end{figure}
|
||||
|
||||
|
||||
|
@ -131,39 +130,39 @@ run([[0,0,1,1,2], [2,0,2,2,-1], [3,0,5,1,-1],
|
|||
\begin{listeFleche}
|
||||
\item On vérifie les aires avec un 2 et de 4 cases puis on colorie la case 2 en noire et ses diagonales
|
||||
\begin{listeFleche}
|
||||
\item On colore les cases adjacentes au noire en blanc, on le fais autant de fois que nécessaire
|
||||
\item On colore les cases adjacentes aux noires en blanc, on le fait autant de fois que nécessaire
|
||||
\end{listeFleche}
|
||||
\item On regarde quelles cases doivent être colorés en noire pour éviter de faire des lignes de 4 cases blanches
|
||||
\item On connecte les cases blanches entre elle sans faire de lignes de plus de 3 cases dans des zones différentes
|
||||
\item On regarde quelles cases doivent être colorées en noire pour éviter de faire des lignes de 4 cases blanches
|
||||
\item On connecte les cases blanches ensemble sans faire de lignes de plus de 3 cases dans des zones différentes
|
||||
|
||||
\item Maintenant on essaie de rajouter des cases noires :
|
||||
\begin{listeFleche}
|
||||
\item On met une case noire pour éviter des groupes de 3 cases blanches
|
||||
\item On colorie les cases adjacentes à la nouvelle case noire en blanc
|
||||
\end{listeFleche}
|
||||
\item On fait en sorte que toutes les cases blanches soient connectés en rajoutant des cases blanches si possible
|
||||
\item On remplie les cases noires là où on peut les mettre, et on continue jusqu'à qu'il n'y est plus de cases sans couleurs.
|
||||
\item On fait en sorte que toutes les cases blanches soient connectées en rajoutant des cases blanches si possible
|
||||
\item On remplit les cases noires là où on peut les mettre, et on continue jusqu'à qu'il n'y est plus de cases sans couleurs.
|
||||
\end{listeFleche}
|
||||
|
||||
\section{Le programme}
|
||||
\subsection{Le prédicat \emph{\texttt{aire}} en détail}
|
||||
Le prédicat \emph{\texttt{aire}} fonctionne comme l'image ci-contre. Il regarde chaque case de l'aire.
|
||||
Une fois arrivé à l'extremité d'une aire, il descend d'une case si il y une ligne en dessous puis il parcours
|
||||
Une fois arrivé à l'extrémité d'une aire, il descend d'une case s'il y une ligne en dessous puis il parcourt
|
||||
le chemin inverse avec le prédicat \emph{\texttt{airereverse}}.
|
||||
|
||||
Par exemple, sur la \autoref{fig:default}, prenons l'aire en bas à droite :
|
||||
Par exemple, sur la \autoref{fig:defaultFig}, prenons l'aire en bas à droite :
|
||||
\begin{figure}[ht]
|
||||
\centering
|
||||
\includegraphics[width=5cm, height=5cm]{aireExplication}
|
||||
\caption{Explication fonctionnement \emph{\texttt{aire}}}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Listing des prédicats utilisés}
|
||||
\subsection{Liste des prédicats utilisés}
|
||||
\begin{listeFleche}
|
||||
\item \textbf{\texttt{aire(X1, Y1, X2, Y2, E, T)}} :
|
||||
Ce prédicat fait scanne l'aire renseignée et assigne une couleur via le prédicat \emph{\texttt{case}}.
|
||||
\item \textbf{\texttt{airereverse(X1, Y1, X2, Y2, 0, T)}} :
|
||||
Ce prédicat est appellée par le prédicat \emph{\texttt{aire}} et permet de vérifier tout les éléments
|
||||
Ce prédicat est appelée par le prédicat \emph{\texttt{aire}} et permet de vérifier tous les éléments
|
||||
d'une aire.
|
||||
\item \textbf{\texttt{case(X, Y, C)}} :
|
||||
Ce prédicat renvoie la couleur d'une case du puzzle.
|
||||
|
|
Reference in a new issue