rapport
This commit is contained in:
@@ -1,28 +1,27 @@
|
|||||||
# Rapport
|
# Rapport
|
||||||
|
|
||||||
Nous avons choisi d'utiliser doxygen pour faire une documentation de notre code. Nous vous rendons donc
|
Nous avons choisi d'utiliser doxygen pour faire une documentation de notre code. La majorité de ce pdf est la documentation de notre code.
|
||||||
notre rapport dans cette documentation, donc la majorité de ce pdf est en faite la documentation de notre code.
|
|
||||||
|
|
||||||
## Décision de structure
|
## modélisation du jeu et décision de structure
|
||||||
|
|
||||||
Pour commencer on a pris comme structure pour la zone de jeu un tableau 2d de `char`. Nous avons pris
|
Nous sommes parti sur un tableau 2d de `char`afin de représenter notre plateau. Nous avons utiliser
|
||||||
des `char` car on sais qu'on a pas besoin de plus de possibilité de nombre que un octet. On a fais des `define`
|
des `char` car on sait qu'on a pas besoin de plus de possibilité de nombre que un octet. On a fait des `define`
|
||||||
qui permet de definir quel nombre correspond à quel objet dans le jeux (joueur , caisse, mur, ...).
|
qui permettent de definir quelles nombres correspondent à quel objet dans le jeu (joueur , caisse, mur, ...).
|
||||||
|
|
||||||
Nous avons ensuite créer une structure `coor` qui est une structure representant des coordonnées x et y.
|
Nous avons ensuite créer une structure `coor` qui est une structure representant des coordonnées x et y.
|
||||||
Cela est pratique pour naviger dans le tableau 2d par exemple.
|
Cela est pratique pour naviger dans le tableau 2d par exemple.
|
||||||
|
|
||||||
On a fais une structure de score qui prend comme variable ce qu'il y a besoin pour calculer le score a la
|
Nous utilisons une structure de score qui prend comme variable ce qu'il y a besoin pour calculer le score a la
|
||||||
fin de la partie. Il y a le temps avant la partie et apres (pour obtenir le temps passer dans la partie), ensuite
|
fin de la partie. Il y a le temps avant la partie et apres (pour obtenir le temps passer dans la partie), ensuite
|
||||||
on a le nombre de déplacement fais par le joueur ainsi que les déplacement fais par les caisses.
|
on a le nombre de déplacement fait par le joueur ainsi que les déplacement fait par les caisses.
|
||||||
|
|
||||||
Pour finir on a fais uns structure `dis` qui est enfaite la structure possédant tout ce qu'il faut
|
Pour finir on a fais uns structure `dis` qui est une structure possédant tout ce qu'il faut
|
||||||
pour faire l'affichage `SDL`. En effet on a la `window`, le `renderer`, on a la taille de la window,
|
pour faire l'affichage `SDL`. En effet on a la `window`, le `renderer`, on a la taille de la fenêtre,
|
||||||
la taille des boites ainsi que la taille du menu.
|
la taille des boites ainsi que la taille du menu.
|
||||||
|
|
||||||
Nous avons fais en sorte que pour nimporte quel écran la window s'adapte à celle-ci.
|
Nous avons fait en sorte que pour n'importe quel écran la fenêtre s'adapte à celle-ci.
|
||||||
|
|
||||||
## Comment lancé le jeu ?
|
## Comment lancer le jeu ?
|
||||||
|
|
||||||
Il vous faut installer SDL2, SDL2 Mixer, SDL2 Image, SDL2 ttf, make, gcc.
|
Il vous faut installer SDL2, SDL2 Mixer, SDL2 Image, SDL2 ttf, make, gcc.
|
||||||
|
|
||||||
@@ -30,3 +29,41 @@ Il vous faut installer SDL2, SDL2 Mixer, SDL2 Image, SDL2 ttf, make, gcc.
|
|||||||
make all
|
make all
|
||||||
./sokoban
|
./sokoban
|
||||||
```
|
```
|
||||||
|
## Les contrôles:
|
||||||
|
|
||||||
|
- zqsd pour se déplacer
|
||||||
|
- échap pour sortir du niveau
|
||||||
|
- entrée pour sélectioner le niveau à jouer
|
||||||
|
|
||||||
|
## Pour aller plus loin
|
||||||
|
|
||||||
|
(1) Tout nos niveau sont stocké dans des fichier .txt dans le dossier map. Les fichier nommé original_X sont au nombre de trois, et repésente des niveau que nous avons construit.
|
||||||
|
Les fichier nommé custom_X sont les niveau crée avec l'éditeur de niveau.
|
||||||
|
Nous chargement donc les niveaux depuis leurs fichier texte, de cette manièrere nous pouvons assez simplement ajouter ou retirer des niveau.
|
||||||
|
|
||||||
|
(2) Nous avons fait un affichage de score en fin de niveau, qui prends en compte:
|
||||||
|
- le temps passé dans le niveau.
|
||||||
|
- le nombre de mouvements du personnage.
|
||||||
|
- le nombre de mouvements des caisses.
|
||||||
|
- la réussite du niveau.
|
||||||
|
|
||||||
|
(3) Nous avons donc un affichage en temps réel du chronomètre, ainsi que le nombre de déplacement du joueur et le nombre de déplacement des caisses.
|
||||||
|
|
||||||
|
(4) Nous avons fait un menu dans lequel le joueur doit se déplacer sur un niveau, puis faire entré afin de lancer le niveau.
|
||||||
|
Les niveau originaux sont imagé avec un escalier de couleur blanche tandis que les niveau crée avec l'éditeur sont imagé avec un escalier de couleur noir.
|
||||||
|
|
||||||
|
(5) La partie s'arrete automatiquement si le joueur ne peut plus gagner, dans ce cas il peut alors observer son score.
|
||||||
|
|
||||||
|
(+) L'éditeur de niveau:
|
||||||
|
Nous avons créer un outil de création de niveau dans notre jeux, afin de créer des niveau plus rapidement.
|
||||||
|
L'éditeur se trouve tout à droite du menu.
|
||||||
|
Un fois rentrer dedans un fichier texte (custom_X.txt) va etre créer.
|
||||||
|
Dans cette éditeur vous pouvez déplacer le personnages avec z,q,s,d,
|
||||||
|
vous pouvez également modifier le plateau en faisant soit un clic gauche (sur la case voulue) pour placer un objet suivant,
|
||||||
|
ou vous pouvez faire un clic droit pour placer l'objet précedent.
|
||||||
|
Enfin il vous suffira de faire échape ou fermer le programme afin de sauvegarder le niveau. Il apparaitra donc en tant que niveau custom dans le menu principal.
|
||||||
|
Attention : une fois un niveau enregistrer il n'est plus possible de le modifier via le programme, il vous faudra aller dans le dossier maps et modifier à la main les charactère.
|
||||||
|
|
||||||
|
(+) nous avons ajouter aussi quelques effet visuel... (génération avec seed de la végétation au sol, différents sprites pour le personnage suivant la direction ou encore un menu des titres)
|
||||||
|
|
||||||
|
Bon jeu !
|
||||||
Reference in New Issue
Block a user