Skip to content
Snippets Groups Projects
Commit 938e13b7 authored by Bariatti Francesco's avatar Bariatti Francesco
Browse files

Rapport interface graphique

parent 521a7cd0
No related branches found
No related tags found
No related merge requests found
No preview for this file type
......@@ -150,7 +150,15 @@ Le \textit{bitboard} des obstacles (un 1 dans les cases où il y a soit de l'eau
\subsection{L'interface graphique}
TODO: gui
L'IA nécessite d'avoir le coups qu'on veut jouer exprimés comme numéro par rapport aux coups totaux disponibles pour un joueur: cette partie de conversion nécessaire était la raison principale pour le développement d'une interface graphique, vu que c'était un travail fastidieux et très difficile à faire à la main à chaque fois qu'on veut jouer un coup.
Le choix du langage pour implémenter l'interface graphique est tombé vers un langage qu'on maîtrise mieux que le C++: le Java. elle est donc développée avec la bibliothèque \textit{javafx} qui permet d'avoir un modèle \textit{Modèle, Vue, Contrôleur} qui va faciliter la reprise dans le futur. \\
L'interface devait être facile à l'utilisation et "jolie". On n'avait pas de bases ni d'indications particulières, on a donc commencé de zéro pour cette partie.
\paragraph{Communication avec l'IA}Les deux programmes étant indépendant, il faut une façon pour que les données du jeu passent du programme en C++, qui gère le jeu et l'IA, à l'interface en Java. Pour ce faire on a décidé d'utiliser une représentation en \href{https://fr.wikipedia.org/wiki/JavaScript_Object_Notation}{JSON}, et de transmettre l'état entier du jeu après chaque coup.
L'interface graphique fait le travail inverse de l'IA: elle convertit les différentes valeurs des \textit{bitboards} de l'état en tableaux et objets qui sont ensuite utilisés pour l'affichage.
\paragraph{Difficultés}La principale difficulté dans le développement de l'interface graphique a été la mise en place du plateau et de l'architecture MVC: une période de recherche d'informations sur le javafx a été nécessaire. Une fois les bases mises en place l’implémentation des différentes fonctionnalités (comme le fait que les mouvements possibles apparaissent en une couleur différente) a été plus rapide.
\newpage
\section{Conclusion}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment