File Parser
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing

This commit is contained in:
Debucquoy Anthony 2023-05-16 09:45:41 +02:00
parent 7bad1b930d
commit 4358435f93
Signed by: tonitch
GPG Key ID: A78D6421F083D42E
4 changed files with 68 additions and 23 deletions

Binary file not shown.

View File

@ -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}

View File

@ -1,19 +0,0 @@
# Summary
# Rapports
- [Première entrevue](./rapports/130223.md)
- [Deuxième entrevue](./rapports/200223.md)
- [Troisième entrevue](./rapports/230323.md)
# Specification
- [File Parser](./spec/FileParser.md)
# Histoire
- [Plot Story](./histoire/plot_story.md)
# Rapport Final
- [Rapport Final](/rapports/rapport_final.md)

View File

@ -1,3 +0,0 @@
# Rapport Final