diff --git a/JournalDeBord/rapport/rapport.pdf b/JournalDeBord/rapport/rapport.pdf new file mode 100644 index 0000000..f38caad Binary files /dev/null and b/JournalDeBord/rapport/rapport.pdf differ diff --git a/JournalDeBord/rapport/rapport.tex b/JournalDeBord/rapport/rapport.tex index f06b9b9..427df32 100644 --- a/JournalDeBord/rapport/rapport.tex +++ b/JournalDeBord/rapport/rapport.tex @@ -1,5 +1,9 @@ \documentclass[12pt,a4paper]{article} +\usepackage{amsmath} +\usepackage{listings} +\usepackage{tikz} + \begin{document} \title{Rapport du projet informatique 2023 \\ "Road to Master"} @@ -25,15 +29,78 @@ Nous lui souhaitons une bonne reconversion. \section{Organisation} - \subsection{Choix} \subsection{Difficultés} \section{Points Forts} +\subsection{Parser de fichiers} + +Pour la rétention des niveaux, plusieurs possibilités s'offraient à nous. Nous avons alors décidés d'accomplir une série d'objectifs propre à notre projet avec un parser de fichiers dédié. +Nous voulons que ce parser accomplisse les objectifs suivants: +\begin{itemize} + \item{Les données du niveau seront encapsulées dans un header/footer pour laisser la possibilité d'enregisterer plus d'informations (images/musiques) dans un seul fichier dans le futur.} + \item{La taille du fichier devra être aussi petite que possible, tout en gardant les informations nécéssaire au bon fonctionnement du jeu.} + \item{Il sera possible d'enregistrer l'état d'une partie en cours.} +\end{itemize} + +\subsubsection*{spécification} + +\begin{description} + \item[Header/Footer]{ Les données du niveau commencent par les 3 \emph{caractères} 'S', 'M', 'S' (ou \verb|0x534D53|) et se terminent par les 3 \emph{caractères} 'S', 'M', 'E' (ou \verb|0x534D45|)} + \item[Taille de carte]{ Le premier octet des données représente la largeur de la carte, le second sa hauteur.} + \item[Forme de la carte]{ Chaques cellules de la carte est représenté par un 1 ou un 0. le 1 représente un emplacement libre, un 0 une cellule vide. + La forme de la carte peut alors être répartie sur un nombre indéterminé d'octets. + Nous pouvons déterminer ce nombre grace à + $$\frac{\text{largeur} * \text{hauteur } (+1 \text{ si multiple de } 8)}{8}$$ + en division entière.} + \item[Nombre de pièces]{ L'octet suivant l' (les) octet(s) qui forme(nt) la carte represente le nombre de pièces} + \item[Pour chaques pieces]{ + \ + \begin{description} + \item[Taille de la piece]{La taille est représentée sur un seul octet sous forme de nibble. La première partie du nibble est la largeur. La seconde partie du nibble est la hauteur } + \item[Forme de la pièce]{ Chaques cellules de la piece est représenté par un 1 ou un 0. la manière de le représenter et exactement la même que pour la forme de la carte } + \end{description} + Dans le cas où le fichier sauvegarde l'état de la partie, à la fin, et pour chaques pieces dans le même ordre que l'apparition des pièces: + \begin{description} + \item[Position de la pièce]{2 octets par pieces, 1 octet pour sa position en x et 1 octet pour sa position en y. + Dans le cas où la pièce est flotante (n'est pas placée dans la carte.), les octets contenant les caractères F puis L (0x464C) remplacent les coordonées} + \end{description} + } +\end{description} + +\subsubsection*{Exemple} + +Voici le 'hexdump' du niveau 11 + +\begin{verbatim} +53 4d 53 05 05 e7 ff ff 80 06 33 ff 80 22 f0 22 |SMS.......3.."."| +b0 22 70 22 b0 11 80 53 4d 45 |."p"...SME| +\end{verbatim} +représente une carte de la forme + +\begin{tikzpicture} + \filldraw[blue] (0,0) -- (0,5) -- (3,5) -- (3,4) -- (5,4) -- (5,0) -- cycle; + \draw[step=1cm,gray] (0, 0) grid (5,5); +\end{tikzpicture} + +avec les pieces + +\begin{tikzpicture} + \fill[red] (1,1) rectangle (4,4); + \fill[red] (5,1) rectangle (7,3); + \fill[red] (8,1) -- (8,3) -- (9,3) -- (9,2) -- (10,2) -- (10,1) -- cycle; + \fill[red] (11,1) -- (11,2) -- (12,2) -- (12,3) -- (13,3) -- (13,1) -- cycle; + \fill[red] (1,-2) -- (1,0) -- (2,0) -- (2,-1) -- (3,-1) -- (3,-2) -- cycle; + \fill[red] (4, -2) rectangle (5, -1); + \draw[step=1cm,gray] (0.5, -2.5) grid (13.5, 4.5); +\end{tikzpicture} + \section{Points Faibles} \section{Apports Positifs et négatifs} +\section{conclusion} + \end{document}