@@ -72,7 +72,15 @@ La fonction \verb|move_to_string| est importante car c'est la représentation qu
...
@@ -72,7 +72,15 @@ 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!
\paragraph*{} Il ne faut pas oublier d'ajouter les nouveaux fichiers dans le makefile!
\subsection{Notre implémentation: le Jeu du Pingouin}
\subsection{Notre implémentation: le Jeu du Pingouin}
TODO
\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).
\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.
\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.