This commit is contained in:
Mylloon 2024-01-12 01:48:34 +01:00
parent 524e034e7c
commit d311f8fe48
Signed by: Anri
GPG key ID: A82D63DFF8D1317F

View file

@ -23,18 +23,101 @@
\tableofcontents
\clearpage
% Alias
\newcommand{\separator}{\vspace{1em}}
\section{Ce qui a été traité}
TODO
Le projet a été réalisé en binôme.
\section{Aspects les plus significatifs}
TODO
\subsection{Jeux implémentés}
Les jeux suivants ont étés implémentés :
\begin{itemize}
\item Butin
\item Dames
\item Safari
\end{itemize}
\section{Quelques problèmes connus}
TODO
\subsection{Affichage}
L'affichage est géré via une classe \texttt{Ecran} qui utilises \texttt{SFML}.
\begin{itemize}
\item \texttt{afficher} est la méthode principale de la classe, car elle prend
en argument deux fonctions qui permettent de gérer l'affichage et le
clic-gauche de la souris
\end{itemize}
\subsection{Héritage}
De l'héritage a été utilisé pour décrire des jeux "\textit{conceptuellement
proches}".
\begin{itemize}
\item classe \texttt{Jeu} est dérivée en \texttt{Butin}, \texttt{Dames} et
\texttt{Safari}
\item classe \texttt{Piece} est dérivée en \texttt{PieceButin},
\texttt{PieceDames} et \texttt{PieceSafari}
\item classe \texttt{Plateau} est dérivée en \texttt{PlateauButin},
\texttt{PlateauDames} et \texttt{PlateauSafari}
\end{itemize}
\subsection{Généricité}
La généricité a majoritairement été utilisée pour le débogage, pour exemple
une fonction qui affiche le contenu de n'importe quel \texttt{vector}.
\subsection{Compilation}
Un \texttt{Makefile} a été écrit pour faciliter la compilation du projet.
\begin{itemize}
\item \texttt{make} permet la compilation du projet
\item \texttt{make dev} permet la compilation avec des flag utile au débogage
\item Les jeux ont étés séparés dans des sous-dossiers pour une meilleure
lisibilité des fichiers headers et source.
\end{itemize}
\section{Aspects significatifs}
\subsection{Modularité}
Les classes \texttt{Jeu} et \texttt{Piece} sont abstraites, car elles n'ont pas
de sens sans certaines méthodes uniques aux jeux. En revanche la classe
\texttt{Plateau} peut exister seule, mais ne sert à rien sans jeu, elle
possède des méthodes virtuelles pour permettre des plus grandes flexibilités
sur certains aspects de l'affichage. La couleur des cases peut également être
personnalisée. La classe \texttt{Joueur} est une finale, car elle reste
la même parmi tous les jeux et un joueur possède les mêmes actions.
\subsection{Environnement d'accueil}
L'environnement d'accueil se fait via les arguments du programme, le terminal
n'est utilisé que pour choisir le nombre de joueurs pour le jeu "Safari", tout
le reste ce fait via interaction avec l'écran de jeu.
\subsection{Indications}
Les indications se font via une ligne de texte situé en dessous du plateau
de jeu.
\subsection{Collaboration}
Nous avons utilisé
\href{https://gaufre.informatique.univ-paris-diderot.fr/Anri/projet-cpp}{Git}
pour développeur le projet avec des commits poussés régulièrement ($\approx$~200).
\subsection{Affichage}
L'affichage (méthode \texttt{play}) est séparé de la logique du jeu
(méthode \texttt{event}).
\section{Problèmes rencontrés}
L'affichage SFML n'était pas facile à prendre en main pour faire une classe
pratique à utiliser parmi une multitude de jeux. On a opté pour une classe
\texttt{Ecran} qui prend en argument des fonctions qui seront appelés à chaque
dessin d'une image. Ces fonctions sont personnalisées pour chaque jeu et sont
les méthodes principales des jeux en question.
\section{Ce qui n'a pas été implémenté}
TODO
% \subsection*{Global}
Les joueurs ne se voient pas affichés d'indications sur où placer leurs pièces.
\separator
Les parties se font joueur contre joueur uniquement.
% \subsection*{Dames}
% Le jeu de Dames n'est pas complètement terminé sur certains aspects :
% \begin{itemize}
% \item Prise des pièces
% \item Force le joueur à prendre quand c'est possible
% \end{itemize}
\newpage
\section{Diagramme UML} % ou plusieurs ?
@ -42,6 +125,7 @@ TODO
\centering
\includegraphics[width=1.3\textwidth]{imgs/diagrammeUML.png}
\caption{Diagramme UML}
\label{uml}
\end{figure}