diff --git a/Doc/fr/Doc_technique/Doc_technique.pdf b/Doc/fr/Doc_technique/Doc_technique.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c827d34c3c3146775735e4c4f392f88a591d8bd7 Binary files /dev/null and b/Doc/fr/Doc_technique/Doc_technique.pdf differ diff --git a/Doc/fr/Doc_technique/Doc_technique.tex b/Doc/fr/Doc_technique/Doc_technique.tex index 0eb5c80d23ed3d96d712ee7935fad8eceed21638..a26925f1f1d6f7302af40cbcffe8f924931f1574 100644 --- a/Doc/fr/Doc_technique/Doc_technique.tex +++ b/Doc/fr/Doc_technique/Doc_technique.tex @@ -72,15 +72,21 @@ La fonction \verb|move_to_string| est importante car c'est la représentation qu \paragraph*{} Il ne faut pas oublier d'ajouter les nouveaux fichiers dans le makefile! \subsection{Notre implémentation: le Jeu du Pingouin} -\paragraph*{} -Le fichier \verb|penguin.hpp| définit la structure \verb|penguin_state| (qui décrit définit les bitboards des poissons, les positions des pingouins des 2 joueurs, les scores, le joueur courant, le nombre de coups de chaque joueur...) et la class \verb|penguin| qui implémente les méthodes suivantes dans \verb|penguin.cpp| (En plus des autres méthodes citées ci-dessus). +Pour plus d'informations sur les structures et méthodes utilisées pour modéliser le Jeu du Pingouin, regarder le rapport du projet, qui se trouve dans le dossier \verb|Doc/fr/Rapport|. + +\paragraph*{} Le fichier \verb|penguin.hpp| définit la structure \verb|penguin_state|, qui décrit un état du jeu. Cette structure définit les bitboards des poissons, +les bitboards des pingouins des 2 joueurs, les scores, le joueur courant et le nombre de coups de chaque joueur. + +Les fichiers \verb|penguin.hpp| et \verb|penguin.cpp| définissent la classe \verb|penguin|, implémentant l'interface \verb|game|, qui décrit un jeu. +En plus des méthodes de l'interface, cette classe implémente les méthodes suivantes: \begin{itemize} -\item \verb|penguin_state get_state()| Retourne l'état du jeu -\item \verb|void move_penguin(uint32_t* p, uint16_t rel_move)| Déplace le pingouin lui faisant faire son coup numéro \verb|rel_move|. A la fin de la fonction, le pingouin n'est plus composé que de sa nouvelle position (tous les autres bits sont à 0). -\item \verb|uint64_t create_obstacles_bitboard()| Crée le bitboard des obstacles : Pour chaque case, 1 s'il y a un obstacle, 0 sinon. -\item \verb|int update_penguin_moves(uint32_t* p, uint64_t obstacles)| Met à jour tous les coups d'un pingouin donné en fonction de sa position et du bitboard des obstacles. Retourne le nombre total de coups du pingouin. + \item \verb|penguin_state get_state()| Retourne l'état du jeu + \item \verb|void move_penguin(uint32_t* p, uint16_t rel_move)| Déplace le pingouin \verb|p| lui faisant faire son coup numéro \verb|rel_move|. À la fin de la fonction, le pingouin n'est plus composé que de sa nouvelle position (tous les autres bits sont à 0). + \item \verb|uint64_t create_obstacles_bitboard()| Crée le bitboard des obstacles : pour chaque case, le bit correspondant est à 1 s'il y a un obstacle, 0 sinon. + \item \verb|int update_penguin_moves(uint32_t* p, uint64_t obstacles)| Met à jour tous les coups du pingouin \verb|p| en fonction de sa position et du bitboard des obstacles. Retourne le nombre total de coups du pingouin. \end{itemize} -Par ailleurs, le début du code gère le chargement d'un état au lancement via l'entrée standard du programme. + +Par ailleurs, le constructeur de la classe \verb|penguin| gère le chargement d'un état via l'entrée standard du programme. \newpage \section{L'interface graphique}