<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">\documentclass[titlepage]{article}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% PACKAGES
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage{graphicx} %images
\usepackage[hidelinks]{hyperref}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\title{\textbf{Jeu des pingouins: documentation utilisateur}}
\author{Francesco Bariatti \and Adrien Gasté \and Mikaël Le \and Romain Lebouc}
\date{2015-2016}

\begin{document}
\pagenumbering{gobble}
\maketitle


\tableofcontents

\newpage
\pagenumbering{arabic}
\section{Introduction}
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}
	
	\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 disponible sous Gitlab ; Sous Linux, il suffit de télécharger les sources et de les compiler.

	\subsection{Dépendances}
	
	\paragraph{IA} Une version de g++ 4.9 minimum est nécessaire.
	
	\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.
	
	\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}
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.

À 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.

À 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 trouvez des bugs, n'hésitez pas à ouvrir des issues sur Gitlab
	
\end{document}</pre></body></html>