Ce document est la documentation technique du projet d'études pratiques réalisé dans le cadre de la 3\ieme année de formation à l'\textsc{insa} de Rennes.
Interface mcts donnée par Pascal, nous on a fait le penguin.hpp et cpp et tout ce qu'il y a dans le dossier gui.
Le projet est composé de deux parties: une intelligence artificielle codée en C++ et une interface graphique codée en Javafx; Dans ce document on va aussi appeler l'intelligence artificielle IA ou MCTS (pour Monte Carlo Tree Search, le nom de l'algorithme de recherche utilisé).
Le jeu doit implementer une interface \textit{game}
Dans la section dédiée à l'IA on va voir comment on peut implémenter un jeu pour qu'il puisse utiliser le MCTS comme IA et ensuite voir comment le Jeu du Pingouin est implémenté.
Le jeu donne l'état en json après chaque coup, l'interface graphique ne fait que lancer le jeu et lire sa sortie std.
Le mcts attends un numero de coup (entre 0 et le nombre de coups -1), donc conversion.
\subsection{Auteurs et license}
Au début le mcts attends un état json qui est utilisé pour changer son état de depart (il ne change que ce qui est specifié: un json \{\} va lancer l'état par defaut)
La partie MCTS a été codée par Pascal \textsc{Garcia}, notre encadrant. Notre groupe a codé la partie Jeu du Pinguin (\verb|penguin.cpp penguin.hpp|) et la partie Interface Graphique (dossier \verb|GUI|).
Toutes les parties sont licenciées par une licence MIT, avec attribution aux auteur respectifs.
Dans l'interface graphique on utilise une librairie JSON pour java, TODO: license lib json
\newpage
\section{Interface game}
\section{Interface game}
Comment implementer un jeu (fonction par fonction). regarder dans les fichiers texte dans le dossier doc, il y a un markdown qui explique.
Comment implementer un jeu (fonction par fonction). regarder dans les fichiers texte dans le dossier doc, il y a un markdown qui explique.
...
@@ -41,4 +48,4 @@ bitboards, pingouins sur 32 bits, calculs de +8 -8 selon la direction ...
...
@@ -41,4 +48,4 @@ bitboards, pingouins sur 32 bits, calculs de +8 -8 selon la direction ...
\section{L'interface graphique}
\section{L'interface graphique}
Modele MVC. Le controlleur fait tout. Le modele stocke juste des données. La view a un lien vers le modele et se mets à jour quand le controller le dit.
Modele MVC. Le controlleur fait tout. Le modele stocke juste des données. La view a un lien vers le modele et se mets à jour quand le controller le dit.