This repository has been archived on 2022-03-31. You can view files and clone it, but cannot push or open issues or pull requests.
heyawake-prolog/presentation/presentation.tex

130 lines
4.6 KiB
TeX
Raw Normal View History

2021-03-29 09:52:54 +02:00
\documentclass{beamer}
2021-03-29 11:15:52 +02:00
\usepackage[utf8x]{inputenc}
2021-03-29 09:52:54 +02:00
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage{xcolor}
\usepackage{trimclip}
2021-03-29 11:15:52 +02:00
\usepackage{listings} % intégration code
2021-03-29 09:52:54 +02:00
\usetheme{boxes}
\addtobeamertemplate{footline}{
\marginbox{1pt 3pt 0pt 0pt}{
\color[RGB]{173, 173, 224}{
\insertframenumber/\inserttotalframenumber
}
}
}
2021-03-29 11:15:52 +02:00
% couleurs
\definecolor{defaultPredicat}{RGB}{121, 94, 38}
\definecolor{definitionChar}{RGB}{175, 0, 219}
\definecolor{argsAndPredicat}{RGB}{0, 96, 181}
\definecolor{string}{RGB}{163, 99, 21}
\definecolor{comment}{RGB}{0, 128, 0}
\lstset{
frame=single, % encadré
breaklines=true, % lignes dans le cadre
columns=fullflexible, % contenu bien présenté dans le cadre
language=Prolog, % language
tabsize=4, % nb d'espace par tabulation
% chiffres
numbers=left,
numberstyle=\tiny,
% affichage
basicstyle=\ttfamily,
keywordstyle=\color{defaultPredicat},
identifierstyle=\color{argsAndPredicat},
stringstyle=\color{string},
commentstyle=\color{comment},
literate=
{:-}{{\textcolor{definitionChar}{:- }}}1
% utf-8 fix source: https://en.wikibooks.org/wiki/LaTeX/Source_Code_Listings
{á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1
{Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1
{à}{{\`a}}1 {è}{{\`e}}1 {ì}{{\`i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1
{À}{{\`A}}1 {È}{{\'E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1
{ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
{Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
{â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1
{Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1
{ã}{{\~a}}1 {}{{\~e}}1 {ĩ}{{\~i}}1 {õ}{{\~o}}1 {ũ}{{\~u}}1
{Ã}{{\~A}}1 {}{{\~E}}1 {Ĩ}{{\~I}}1 {Õ}{{\~O}}1 {Ũ}{{\~U}}1
{œ}{{\oe}}1 {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1
{ű}{{\H{u}}}1 {Ű}{{\H{U}}}1 {ő}{{\H{o}}}1 {Ő}{{\H{O}}}1
{ç}{{\c c}}1 {Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1
{}{{\euro}}1 {£}{{\pounds}}1 {«}{{\guillemotleft}}1
{»}{{\guillemotright}}1 {ñ}{{\~n}}1 {Ñ}{{\~N}}1 {¿}{{?`}}1 {¡}{{!`}}1,
% espaces normaux sans underscore
showspaces=false,
showstringspaces=false,
showtabs=false
}
2021-03-29 09:52:54 +02:00
\title{Heyawake en Prolog}
\subtitle{Projet de fin de semestre}
\author{Kévin Martins Da Veiga et Anri Kennel}
\institute{Paris 8 - Programmation Déclarative et Bases de Données}
\date{}
\begin{document}
\begin{frame}
\titlepage
\end{frame}
2021-03-29 11:15:52 +02:00
2021-03-30 15:35:19 +02:00
\begin{frame}{Présentation et règles}
2021-03-29 11:15:52 +02:00
\begin{columns}[T]
\begin{column}{.48\textwidth}
2021-03-30 15:35:19 +02:00
\textbf{But du jeu}
\\
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.
\\
\rule{15em}{0.2mm}
\\
\textbf{Example de plateau}
2021-03-29 11:15:52 +02:00
\\
\begin{figure}[ht]
\centering
\includegraphics[width=2cm, height=2cm]{../rendu/default}
\end{figure}
2021-03-30 15:35:19 +02:00
\end{column}
\hfill
\hspace{5pt}\vrule\hspace{5pt}
\begin{column}{.48\textwidth}
\textbf{Règles du jeu}
\\
2021-03-29 11:15:52 +02:00
\begin{itemize}
\item Les numéros dans les aires indiquent le nombre de cases noires
\item Les cases blanches ne doivent pas être isolés
\item Les cases noires ne doivent pas se toucher
\item Les cases blanches ne peuvent s'aligner sur plus de 2 aires
\end{itemize}
2021-03-30 15:35:19 +02:00
2021-03-29 11:15:52 +02:00
\end{column}
\end{columns}
2021-03-29 09:52:54 +02:00
\end{frame}
2021-03-29 11:15:52 +02:00
\begin{frame}[fragile]{Explication code}
On lance le programme avec le prédicat \emph{\texttt{run}} qui,
récursivement, parcoure la grille du tableau en appellant le
prédicat \emph{\texttt{aire}} qui sert à trouver les solutions.
\begin{exampleblock}{Prédicat \emph{\texttt{run}}}
\begin{lstlisting}
run([]) :- write('0: case blanc, 1: case noire').
run([[X1, Y1, X2, Y2, E] | Q]) :- T is X2 - X1, aire(X1, Y1, X2,Y2, E, T), run(Q).
\end{lstlisting}
\end{exampleblock}
\end{frame}
\begin{frame}
\begin{center}
Conclusion
\end{center}
2021-03-29 09:52:54 +02:00
\end{frame}
\end{document}