diff --git a/LaTex/Soutenance/Rapport_en_LaTeX/Soutenance.pdf b/LaTex/Soutenance/Rapport_en_LaTeX/Soutenance.pdf new file mode 100644 index 0000000000000000000000000000000000000000..39b9cdb1ba9521b1791f8f52d3ff96a84885a71d Binary files /dev/null and b/LaTex/Soutenance/Rapport_en_LaTeX/Soutenance.pdf differ diff --git a/LaTex/Soutenance/Rapport_en_LaTeX/Soutenance.tex b/LaTex/Soutenance/Rapport_en_LaTeX/Soutenance.tex index 78dea33684bda65dde72875b3e1fad0cc50ad043..5835588c26ccba06a814ddca18f0774acd2c841a 100644 --- a/LaTex/Soutenance/Rapport_en_LaTeX/Soutenance.tex +++ b/LaTex/Soutenance/Rapport_en_LaTeX/Soutenance.tex @@ -71,6 +71,7 @@ huhu \section{Implémentation du MCTS pour le Jeu du Pingouin} +\subsection{Le Plateau} \begin{frame} huhu \end{frame} diff --git a/LaTex/doc_utilisateur/userDoc.tex b/LaTex/doc_utilisateur/userDoc.tex index d60b889ad4d8254a9f38eee45715a664d8833ef5..18b3d450ac79170f552103427f2f95b5027552e7 100644 --- a/LaTex/doc_utilisateur/userDoc.tex +++ b/LaTex/doc_utilisateur/userDoc.tex @@ -1,10 +1,12 @@ -\documentclass{article} +\documentclass[titlepage]{article} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % PACKAGES +\usepackage[utf8]{inputenc} +\usepackage[french]{babel} \usepackage{graphicx} %images \usepackage[hidelinks]{hyperref} -\usepackage[utf8]{inputenc} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \title{\textbf{Jeu des pingouins: documentation utilisateur}} @@ -15,42 +17,55 @@ \pagenumbering{gobble} \maketitle -\newpage \tableofcontents \newpage \pagenumbering{arabic} \section{Introduction} -C'est un projet étudiant tiré d'un jeu déjà existant. Composé de deux parties: IA et GUI (c++ et javafx) +Le Jeu des Pingouins est un projet étudiant INSA de département Informatique, dans le cades des études pratiques de 1\iere année. Il est principalement composé de deux parties majeures : l'intelligence artificielle (en \emph{C++}) et l'interface graphique (en \emph{JavaFX}). \subsection{Règles du jeu} -TODO NB: on ne gagne pas les points où il y a le dernier pingouin + + \subsubsection{Matériel} + Le plateau de jeu est composé d'une grille de 60 tuiles hexagonales, représentant la banquise. Chaque tuile comporte un nombre de poissons compris entre 1 et 3. À 2 joueurs, chaque joueur possède 4 jetons de pingouins. + + \subsubsection{Mise en place} + On crée le plateau de départ en répartissant les tuiles aléatoirement. Chaque joueur place ensuite ses pingouins tour à tour sur les cases "1 Poisson". Dans notre implémentation, le joueur choisit l'emplacement de ses 4 pingouins, puis de ceux de l'ordinateur. + + \subsubsection{Objectif} + Avoir mangé plus de poissons que son adversaire. + + \subsubsection{Actions} + Les joueurs jouent chacun leur tour. Pendant son tour, un joueur doit choisir un de ses pingouins, et le déplacer sur une des cases qui lui sont accessibles. Un pingouin peut se déplacer dans n'importe laquelle des 6 directions possibles, tant qu'il ne rencontre pas d'obstacle. Un obstacle peut être un autre pingouin ou une case vide. Quand le coup est joué, le joueur retire la case depuis laquelle le pingouin est parti, et gagne un nombre de points égal au nombre de poissons sur cette case. La case devient alors une case vide, et le tour se termine. + + \subsubsection{À noter} + Dans les règles officielles, à la fin de la partie, chaque joueur gagne le nombre de points des tuiles finales sur lesquelles sont leurs pingouins. Pour des raisons d'implémentation, on ignorera cette règle. \newpage \section{Installation} -Le projet est dispo sous git, il faut le compiler à partir des sources. +Le projet est disponible sous Gitlab ; Sous Linux, il suffit de télécharger les sources et de les compiler. + \subsection{Dépendances} - \paragraph{IA} g++ sup ou égale 4.9 - \paragraph{GUI} Java au moins 1.8 (javafx) et si on execute dans une IDE, niveau de langage au moins 8 (nécessité d'avoir lambda). Le jar json doit être dans le java build path. + \paragraph{IA} Une version de g++ 4.9 minimum est nécessaire. - \subsection{Compilation et lancement} - Allocator.hpp + executer et regarder la ram. - mcts.hpp pour changer le temps - à partir du dossier principal, make, vérifier qu'il y a theturk, le lancer pour voir la ram. + \paragraph{GUI} L'interface graphique utilisant JavaFX, une version de Java supérieure (ou égale) à 1.8 est nécessaire. Par ailleurs, si le jeu est lancé à partir d'un IDE, le niveau de langage doit être de 8 minimum (utilisation des \emph{lambdas}) et le jar JSON doit être dans le java build path. - Lancer gui/main/main.java. Faire gaffe au son. + \subsection{Compilation et lancement} + Pour compiler, exécuter la commande \emph{make}. + Modifier le fichier settings pour modifier la quantité de mémoire allouée et le temps de réflexion de l'IA. + Pour lancer le jeu, exécuter la commande \emph{make run}. + Attention au volume au lancement ! \section{Utilisation} -Quand on lance le main, interface graphique, on peut charger du json (il apparait tour par tour dans la console). +Au démarrage du programme une boite de dialogue propose de charger un état (formaté en JSON). Si l'état est invalide, ou laissé vide, le plateau de départ est généré aléatoirement. Le joueur peut alors placer successivement les 4 pingouins rouges, puis les 4 pingouins bleus en cliquant sur les cases. Le joueur choisit ensuite sa couleur, et le jeu démarre. -Si debut aléatoire: comment ajouter les pingouins. +À chaque tour, le joueur peut choisir un pingouin en cliquant dessus et le déplacer sur une des cases mises en relief. Il faut alors attendre que l'IA joue avant de continuer. -Pour jouer click pour selectionner et click pour bouger. -Il faut attendre que le pc joue. +À chaque coup joué, l'état apparaît dans la console. Il est possible de copier n'importe lequel de ces états et de le recharger en démarrant une partie. \section{Contact} -Si vous trouvé des bugs, n'hesitez pas à ouvrir des issues sur gitlab +Si vous trouvez des bugs, n'hésitez pas à ouvrir des issues sur Gitlab \end{document} \ No newline at end of file