File Parser
This commit is contained in:
parent
7bad1b930d
commit
4358435f93
BIN
JournalDeBord/rapport/rapport.pdf
Normal file
BIN
JournalDeBord/rapport/rapport.pdf
Normal file
Binary file not shown.
@ -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}
|
||||
|
@ -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)
|
@ -1,3 +0,0 @@
|
||||
# Rapport Final
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user