rapport
This commit is contained in:
parent
524e034e7c
commit
d311f8fe48
1 changed files with 90 additions and 6 deletions
|
@ -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}
|
||||
|
||||
|
||||
|
|
Reference in a new issue