diff --git a/report/imgs/SOURCES.md b/report/imgs/SOURCES.md index a7a7f22..8a4d93f 100644 --- a/report/imgs/SOURCES.md +++ b/report/imgs/SOURCES.md @@ -3,5 +3,8 @@ via les liens suivants : | Fichier | Lien Excalidraw | | ------------------: | :------------------------------------------------------------------------ | +| othello_othellier | https://excalidraw.com/#json=FgUR71Cb5Oef6-gRQZVHk,wxDKIEaiQq7XByJ3Fe6BWQ | | othello_init | https://excalidraw.com/#json=d8fn6ZiBgDCZ59db4g0mI,-zjtc5jHvQhahb6Nj4vzng | | othello_premiercoup | https://excalidraw.com/#json=8Qrf8cCcZJAbc3aEGH0Ts,1vsG--6hIFzSNFfZ0KOZPw | +| othello_impl_hh | https://excalidraw.com/#json=vXWZ8gtrSJxhbVfsYShL5,rcEwGNHajCftNAf8WE6HNQ | +| othello_impl_ma | https://excalidraw.com/#json=_h19rWJkN7KVWVU9whOta,NJMrSs_iE6WA_-hIS424-w | diff --git a/report/presentation/slides.tex b/report/presentation/slides.tex index 1fe9e3c..4999f56 100644 --- a/report/presentation/slides.tex +++ b/report/presentation/slides.tex @@ -22,7 +22,10 @@ \usepackage{multicol} % liste sur plusieurs colonnes \usepackage[figurename=]{caption} % nom des images -\title[IA pour Othello]{Projet - IA pour le jeu d'Othello} +\usepackage{minted} % intégration code +\usemintedstyle{emacs} + +\title[IA pour Othello]{\href{https://jj.up8.site/AA/ProjetsAA.pdf}{Projet} - IA pour le jeu d'Othello} \author{\href{mailto:anri.kennel@etud.univ-paris8.fr}{Anri Kennel} | L3-A} \institute{Algorithmique avancée $\cdot$ Université Paris 8} \date{Année universitaire 2022-2023} @@ -37,6 +40,133 @@ \section{Projet} \begin{frame}{Projet} + \begin{columns}[onlytextwidth] + \def\rcolumn{50mm} % taille colonne de droite + \column{\linewidth-\rcolumn-1mm} % colonne de gauche + Jeu d'Othello : + \begin{itemize} + \item Jeu de plateau 8x8 + \item<2-> 2 joueurs + \item<3-> Prendre en sandwich l'adversaire + \end{itemize} + \column{\rcolumn} % colonne de droite + \only<1>{ + \begin{figure} + \includegraphics[width=\rcolumn]{../imgs/othello_othellier.png} + \caption*{Othellier} + \end{figure} + } + \only<2>{ + \begin{figure} + \includegraphics[width=\rcolumn]{../imgs/othello_init.png} + \caption*{Début du jeu} + \end{figure} + } + \only<3->{ + \begin{figure} + \includegraphics[width=\rcolumn]{../imgs/othello_premiercoup.png} + \caption*{Premier coup} + \end{figure} + } + \end{columns} +\end{frame} + +\section{Implémentation} +\subsection*{Othello} +\begin{frame}{Jeu d'Othello} + \only<1>{ + \begin{figure} + \includegraphics[width=0.9\textwidth]{../imgs/othello_impl_hh.png} + \caption*{Jeu : \texttt{./othello humain humain}} + \end{figure} + } + \only<2->{ + \begin{figure} + \includegraphics[width=0.9\textwidth]{../imgs/othello_impl_ma.png} + \caption*{Jeu : \texttt{./othello minimax alphabeta}} + \end{figure} + } +\end{frame} +\begin{frame}[fragile]{Comment ?} + \begin{columns}[onlytextwidth] + \def\rcolumn{63mm} % taille colonne de droite + \column{\linewidth-\rcolumn-1mm} % colonne de gauche + \begin{itemize} + \item Liste chaînée + \item<3-> Coups + \item<4-> Propriétés + \end{itemize} + \column{\rcolumn} % colonne de droite + \begin{overprint} + \onslide<1> + \begin{figure} + \vspace{25mm} + \begin{minted}[autogobble,linenos,fontsize=\scriptsize,highlightlines={4}]{c} + struct joueur { + char *nom; + int couleur; + Liste *liste_jeton; + int nb_jeton; + }; + \end{minted} + \caption*{Liste des jetons des joueurs} + \end{figure} + \onslide<2> + \begin{figure} + \vspace{27mm} + \begin{minted}[autogobble,linenos,fontsize=\scriptsize,highlightlines={2}]{c} + struct coups { + Liste *coups; + int taille_liste; + }; + \end{minted} + \caption*{Liste pour les coups possibles} + \end{figure} + \onslide<3> + \begin{figure} + \vspace{30mm} + \begin{minted}[autogobble,linenos,fontsize=\scriptsize]{c} + Coups *action_possible_joueur + (Jeton *plateau[LONGEUR][LARGEUR], + const int couleur); + \end{minted} + \caption*{Liste pour les coups possibles pour un joueur} + \end{figure} + \onslide<4> + \begin{figure} + \vspace{20mm} + \begin{minted}[autogobble,linenos,fontsize=\scriptsize]{c} + /* Une case est soit vide, + * soit occupé par un des joueurs, + * noir ou blanc */ + enum CASE { VIDE = ' ', BLANC = 'B', + NOIR = 'N' }; + + /* Propriété globale du jeu */ + enum PLATEAU { LONGEUR = 8, LARGEUR = 8 }; + + /* Type de joueurs */ + enum PLAYER_TYPE { HUMAIN, MINIMAX, ALPHABETA }; + \end{minted} + \caption*{Propriétés du jeu} + \end{figure} + \end{overprint} + \end{columns} + \onslide<3>{\hspace{3cm} Pour \textbf{tout} les joueurs} +\end{frame} + +\subsection*{Minimax} +\begin{frame}{Algorithme minimax} + TODO! +\end{frame} + +\subsection*{Alpha-bêta} +\begin{frame}{Algorithme alpha-bêta} + TODO! +\end{frame} + +\section{Comparaison} +\begin{frame}{Comparaison d'efficacité} TODO! \end{frame}