From 889a34ad98a5bb04a7467a7df8340ec72e42fb2a Mon Sep 17 00:00:00 2001 From: Dukantic Date: Thu, 9 Jan 2025 17:46:17 +0100 Subject: [PATCH] zip + rapport --- Aubin_DORIVAL-Cyprien_JULIEN.zip | 3 +++ rapport/html/doxygen_crawl.html | 2 ++ rapport/html/index.html | 37 ++++++++++++++++++++++------ rapport/html/search/all_0.js | 3 +-- rapport/html/search/all_1.js | 6 ++--- rapport/html/search/all_10.js | 2 +- rapport/html/search/all_11.js | 4 +++ rapport/html/search/all_2.js | 10 ++++---- rapport/html/search/all_3.js | 7 +++++- rapport/html/search/all_4.js | 5 ++-- rapport/html/search/all_5.js | 5 ++-- rapport/html/search/all_6.js | 7 ++---- rapport/html/search/all_7.js | 6 ++++- rapport/html/search/all_8.js | 5 ++-- rapport/html/search/all_9.js | 7 ++++-- rapport/html/search/all_a.js | 4 ++- rapport/html/search/all_b.js | 3 +-- rapport/html/search/all_c.js | 6 +++-- rapport/html/search/all_d.js | 7 ++---- rapport/html/search/all_e.js | 7 ++++-- rapport/html/search/all_f.js | 3 ++- rapport/html/search/searchdata.js | 2 +- rapport/latex/index.tex | 39 ++++++++++++++++++++++++++---- rapport/latex/refman.aux | 8 ++++-- rapport/latex/refman.log | 22 ++++++++--------- rapport/latex/refman.pdf | Bin 153732 -> 156440 bytes rapport/latex/refman.toc | 6 +++-- 27 files changed, 146 insertions(+), 70 deletions(-) create mode 100644 Aubin_DORIVAL-Cyprien_JULIEN.zip create mode 100644 rapport/html/search/all_11.js diff --git a/Aubin_DORIVAL-Cyprien_JULIEN.zip b/Aubin_DORIVAL-Cyprien_JULIEN.zip new file mode 100644 index 0000000..2659616 --- /dev/null +++ b/Aubin_DORIVAL-Cyprien_JULIEN.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ae51006fd35dd5b737e8e81031882897b8c7a1b9a2604bd12aed3195b591390 +size 7705327 diff --git a/rapport/html/doxygen_crawl.html b/rapport/html/doxygen_crawl.html index 2752837..4f8ffcc 100644 --- a/rapport/html/doxygen_crawl.html +++ b/rapport/html/doxygen_crawl.html @@ -47,6 +47,8 @@ + + diff --git a/rapport/html/index.html b/rapport/html/index.html index ef12336..25a81aa 100644 --- a/rapport/html/index.html +++ b/rapport/html/index.html @@ -89,19 +89,42 @@ $(function(){ initResizable(false); });

-

Nous avons choisi d'utiliser doxygen pour faire une documentation de notre code. Nous vous rendons donc notre rapport dans cette documentation, donc la majorité de ce pdf est en faite la documentation de notre code.

+

Nous avons choisi d'utiliser doxygen pour faire une documentation de notre code. La majorité de ce pdf est la documentation de notre code.

-Décision de structure

-

Pour commencer on a pris comme structure pour la zone de jeu un tableau 2d de char. Nous avons pris des char car on sais qu'on a pas besoin de plus de possibilité de nombre que un octet. On a fais des define qui permet de definir quel nombre correspond à quel objet dans le jeux (joueur , caisse, mur, ...).

+modélisation du jeu et décision de structure +

Nous sommes parti sur un tableau 2d de charafin de représenter notre plateau. Nous avons utiliser 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 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. 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 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.

-

Pour finir on a fais uns structure dis qui est enfaite la 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, la taille des boites ainsi que la taille du menu.

+

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 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 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 fenêtre, la taille des boites ainsi que la taille du menu.

+

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.

make all
./sokoban
-
+

+Les contrôles:

+ +

+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:

+

(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 !

+ diff --git a/rapport/html/search/all_0.js b/rapport/html/search/all_0.js index 58bc77b..3816e33 100644 --- a/rapport/html/search/all_0.js +++ b/rapport/html/search/all_0.js @@ -1,5 +1,4 @@ var searchData= [ - ['backgrounddisplay_0',['backgroundDisplay',['../display_8c.html#adc264e6abc61064a8222b53822850cdd',1,'display.c']]], - ['blockbox_1',['blockBox',['../function_8c.html#ac51249b2f7941ca06e6a614e071dd444',1,'function.c']]] + ['aller_20plus_20loin_0',['Pour aller plus loin',['../index.html#autotoc_md4',1,'']]] ]; diff --git a/rapport/html/search/all_1.js b/rapport/html/search/all_1.js index 62f1503..58bc77b 100644 --- a/rapport/html/search/all_1.js +++ b/rapport/html/search/all_1.js @@ -1,7 +1,5 @@ var searchData= [ - ['canigodirection_0',['canIGoDirection',['../function_8c.html#a76df2bc0c692d3397837706a6852ac36',1,'function.c']]], - ['comment_20lancé_20le_20jeu_1',['Comment lancé le jeu ?',['../index.html#autotoc_md2',1,'']]], - ['countcustommaps_2',['countCustomMaps',['../read_8c.html#a33f349fef5188584733f08c3a0eddbf2',1,'read.c']]], - ['creatarea2d_3',['creatArea2D',['../function_8c.html#a1d06514900b90ce163ebe2d5aefc16db',1,'function.c']]] + ['backgrounddisplay_0',['backgroundDisplay',['../display_8c.html#adc264e6abc61064a8222b53822850cdd',1,'display.c']]], + ['blockbox_1',['blockBox',['../function_8c.html#ac51249b2f7941ca06e6a614e071dd444',1,'function.c']]] ]; diff --git a/rapport/html/search/all_10.js b/rapport/html/search/all_10.js index 94ca79d..e5c87fe 100644 --- a/rapport/html/search/all_10.js +++ b/rapport/html/search/all_10.js @@ -1,4 +1,4 @@ var searchData= [ - ['winorloseloop_0',['winOrLoseLoop',['../function_8c.html#a2dc9de2f6fd2bed3619d7ce8c1f05590',1,'function.c']]] + ['vecteur_0',['Vecteur',['../structVecteur.html',1,'']]] ]; diff --git a/rapport/html/search/all_11.js b/rapport/html/search/all_11.js new file mode 100644 index 0000000..94ca79d --- /dev/null +++ b/rapport/html/search/all_11.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['winorloseloop_0',['winOrLoseLoop',['../function_8c.html#a2dc9de2f6fd2bed3619d7ce8c1f05590',1,'function.c']]] +]; diff --git a/rapport/html/search/all_2.js b/rapport/html/search/all_2.js index f635976..193f26a 100644 --- a/rapport/html/search/all_2.js +++ b/rapport/html/search/all_2.js @@ -1,8 +1,8 @@ var searchData= [ - ['décision_20de_20structure_0',['Décision de structure',['../index.html#autotoc_md1',1,'']]], - ['de_20structure_1',['Décision de structure',['../index.html#autotoc_md1',1,'']]], - ['display_2ec_2',['display.c',['../display_8c.html',1,'']]], - ['displayimage_3',['displayImage',['../display_8c.html#a99197d28e48cdf3b5b6be89cdc3ce030',1,'display.c']]], - ['displaytextsdl_4',['displayTextSDL',['../display_8c.html#af8c0265ee608800f8daba2540c65c5b0',1,'display.c']]] + ['canigodirection_0',['canIGoDirection',['../function_8c.html#a76df2bc0c692d3397837706a6852ac36',1,'function.c']]], + ['comment_20lancer_20le_20jeu_1',['Comment lancer le jeu ?',['../index.html#autotoc_md2',1,'']]], + ['contrôles_3a_2',['Les contrôles:',['../index.html#autotoc_md3',1,'']]], + ['countcustommaps_3',['countCustomMaps',['../read_8c.html#a33f349fef5188584733f08c3a0eddbf2',1,'read.c']]], + ['creatarea2d_4',['creatArea2D',['../function_8c.html#a1d06514900b90ce163ebe2d5aefc16db',1,'function.c']]] ]; diff --git a/rapport/html/search/all_3.js b/rapport/html/search/all_3.js index 3ad9b1a..072a71c 100644 --- a/rapport/html/search/all_3.js +++ b/rapport/html/search/all_3.js @@ -1,4 +1,9 @@ var searchData= [ - ['essential_5fsdl_0',['essential_sdl',['../structessential__sdl.html',1,'']]] + ['décision_20de_20structure_0',['modélisation du jeu et décision de structure',['../index.html#autotoc_md1',1,'']]], + ['de_20structure_1',['modélisation du jeu et décision de structure',['../index.html#autotoc_md1',1,'']]], + ['display_2ec_2',['display.c',['../display_8c.html',1,'']]], + ['displayimage_3',['displayImage',['../display_8c.html#a99197d28e48cdf3b5b6be89cdc3ce030',1,'display.c']]], + ['displaytextsdl_4',['displayTextSDL',['../display_8c.html#af8c0265ee608800f8daba2540c65c5b0',1,'display.c']]], + ['du_20jeu_20et_20décision_20de_20structure_5',['modélisation du jeu et décision de structure',['../index.html#autotoc_md1',1,'']]] ]; diff --git a/rapport/html/search/all_4.js b/rapport/html/search/all_4.js index b5ff60d..0b978e3 100644 --- a/rapport/html/search/all_4.js +++ b/rapport/html/search/all_4.js @@ -1,6 +1,5 @@ var searchData= [ - ['filetotab2d_0',['fileToTab2D',['../read_8c.html#a223592601b10fb9487363ff4bb417d5d',1,'read.c']]], - ['free2d_1',['free2D',['../function_8c.html#a9011ea69a97e2101aa9bcc52cc60d4ce',1,'function.c']]], - ['function_2ec_2',['function.c',['../function_8c.html',1,'']]] + ['essential_5fsdl_0',['essential_sdl',['../structessential__sdl.html',1,'']]], + ['et_20décision_20de_20structure_1',['modélisation du jeu et décision de structure',['../index.html#autotoc_md1',1,'']]] ]; diff --git a/rapport/html/search/all_5.js b/rapport/html/search/all_5.js index 485fa1d..b5ff60d 100644 --- a/rapport/html/search/all_5.js +++ b/rapport/html/search/all_5.js @@ -1,5 +1,6 @@ var searchData= [ - ['generatormenu_0',['generatorMenu',['../read_8c.html#aa77b744c6eb2919d8d69ae718210ce55',1,'read.c']]], - ['getmaxsize_1',['getMaxSize',['../display_8c.html#ab9c0348d4cff3f20344d763945c96b40',1,'display.c']]] + ['filetotab2d_0',['fileToTab2D',['../read_8c.html#a223592601b10fb9487363ff4bb417d5d',1,'read.c']]], + ['free2d_1',['free2D',['../function_8c.html#a9011ea69a97e2101aa9bcc52cc60d4ce',1,'function.c']]], + ['function_2ec_2',['function.c',['../function_8c.html',1,'']]] ]; diff --git a/rapport/html/search/all_6.js b/rapport/html/search/all_6.js index b656b1c..485fa1d 100644 --- a/rapport/html/search/all_6.js +++ b/rapport/html/search/all_6.js @@ -1,8 +1,5 @@ var searchData= [ - ['ineditorloop_0',['inEditorLoop',['../function_8c.html#a244a34e6a3547ce48d78b64a9a6b030f',1,'function.c']]], - ['ingameloop_1',['inGameLoop',['../function_8c.html#a7f8e67bce9078c159778bbe2f57e9d2f',1,'function.c']]], - ['initsdl_2',['initSDL',['../display_8c.html#a46638b64faa8239921eab8c3817847f4',1,'display.c']]], - ['islose_3',['islose',['../function_8c.html#ac155bb183b0c26d19758d8d065baf14f',1,'function.c']]], - ['iswin_4',['isWin',['../function_8c.html#a618903fbb7302d98ef0f3e2e6b35b99a',1,'function.c']]] + ['generatormenu_0',['generatorMenu',['../read_8c.html#aa77b744c6eb2919d8d69ae718210ce55',1,'read.c']]], + ['getmaxsize_1',['getMaxSize',['../display_8c.html#ab9c0348d4cff3f20344d763945c96b40',1,'display.c']]] ]; diff --git a/rapport/html/search/all_7.js b/rapport/html/search/all_7.js index fc29644..b656b1c 100644 --- a/rapport/html/search/all_7.js +++ b/rapport/html/search/all_7.js @@ -1,4 +1,8 @@ var searchData= [ - ['jeu_0',['Comment lancé le jeu ?',['../index.html#autotoc_md2',1,'']]] + ['ineditorloop_0',['inEditorLoop',['../function_8c.html#a244a34e6a3547ce48d78b64a9a6b030f',1,'function.c']]], + ['ingameloop_1',['inGameLoop',['../function_8c.html#a7f8e67bce9078c159778bbe2f57e9d2f',1,'function.c']]], + ['initsdl_2',['initSDL',['../display_8c.html#a46638b64faa8239921eab8c3817847f4',1,'display.c']]], + ['islose_3',['islose',['../function_8c.html#ac155bb183b0c26d19758d8d065baf14f',1,'function.c']]], + ['iswin_4',['isWin',['../function_8c.html#a618903fbb7302d98ef0f3e2e6b35b99a',1,'function.c']]] ]; diff --git a/rapport/html/search/all_8.js b/rapport/html/search/all_8.js index 5a5f342..9a383a5 100644 --- a/rapport/html/search/all_8.js +++ b/rapport/html/search/all_8.js @@ -1,6 +1,5 @@ var searchData= [ - ['lancé_20le_20jeu_0',['Comment lancé le jeu ?',['../index.html#autotoc_md2',1,'']]], - ['le_20jeu_1',['Comment lancé le jeu ?',['../index.html#autotoc_md2',1,'']]], - ['lengthvect_2',['lengthVect',['../function_8c.html#a74650c59d33ff53d62ca3a3f8f56a68c',1,'function.c']]] + ['jeu_0',['Comment lancer le jeu ?',['../index.html#autotoc_md2',1,'']]], + ['jeu_20et_20décision_20de_20structure_1',['modélisation du jeu et décision de structure',['../index.html#autotoc_md1',1,'']]] ]; diff --git a/rapport/html/search/all_9.js b/rapport/html/search/all_9.js index f57f47a..dbe7ddc 100644 --- a/rapport/html/search/all_9.js +++ b/rapport/html/search/all_9.js @@ -1,5 +1,8 @@ var searchData= [ - ['main_2ec_0',['main.c',['../main_8c.html',1,'']]], - ['move_1',['move',['../function_8c.html#a9c9b1fdde1684178393ffe6104ab615d',1,'function.c']]] + ['lancer_20le_20jeu_0',['Comment lancer le jeu ?',['../index.html#autotoc_md2',1,'']]], + ['le_20jeu_1',['Comment lancer le jeu ?',['../index.html#autotoc_md2',1,'']]], + ['lengthvect_2',['lengthVect',['../function_8c.html#a74650c59d33ff53d62ca3a3f8f56a68c',1,'function.c']]], + ['les_20contrôles_3a_3',['Les contrôles:',['../index.html#autotoc_md3',1,'']]], + ['loin_4',['Pour aller plus loin',['../index.html#autotoc_md4',1,'']]] ]; diff --git a/rapport/html/search/all_a.js b/rapport/html/search/all_a.js index 9fd9e5b..148ab59 100644 --- a/rapport/html/search/all_a.js +++ b/rapport/html/search/all_a.js @@ -1,4 +1,6 @@ var searchData= [ - ['nullscore_0',['nullScore',['../function_8c.html#a4a66f9d998c95fde67d6f89fef1fded5',1,'function.c']]] + ['main_2ec_0',['main.c',['../main_8c.html',1,'']]], + ['modélisation_20du_20jeu_20et_20décision_20de_20structure_1',['modélisation du jeu et décision de structure',['../index.html#autotoc_md1',1,'']]], + ['move_2',['move',['../function_8c.html#a9c9b1fdde1684178393ffe6104ab615d',1,'function.c']]] ]; diff --git a/rapport/html/search/all_b.js b/rapport/html/search/all_b.js index e682acc..9fd9e5b 100644 --- a/rapport/html/search/all_b.js +++ b/rapport/html/search/all_b.js @@ -1,5 +1,4 @@ var searchData= [ - ['playaudio_0',['playAudio',['../display_8c.html#aef4e8ceef5eab0c4c5d664c3d6c96d51',1,'display.c']]], - ['plusvect_1',['plusVect',['../function_8c.html#a5b10e69716d92eadf2ed0b3942cb9d4d',1,'function.c']]] + ['nullscore_0',['nullScore',['../function_8c.html#a4a66f9d998c95fde67d6f89fef1fded5',1,'function.c']]] ]; diff --git a/rapport/html/search/all_c.js b/rapport/html/search/all_c.js index e0c8ac7..fbdb9a6 100644 --- a/rapport/html/search/all_c.js +++ b/rapport/html/search/all_c.js @@ -1,5 +1,7 @@ var searchData= [ - ['rapport_0',['Rapport',['../index.html',1,'']]], - ['read_2ec_1',['read.c',['../read_8c.html',1,'']]] + ['playaudio_0',['playAudio',['../display_8c.html#aef4e8ceef5eab0c4c5d664c3d6c96d51',1,'display.c']]], + ['plus_20loin_1',['Pour aller plus loin',['../index.html#autotoc_md4',1,'']]], + ['plusvect_2',['plusVect',['../function_8c.html#a5b10e69716d92eadf2ed0b3942cb9d4d',1,'function.c']]], + ['pour_20aller_20plus_20loin_3',['Pour aller plus loin',['../index.html#autotoc_md4',1,'']]] ]; diff --git a/rapport/html/search/all_d.js b/rapport/html/search/all_d.js index aedeec5..e0c8ac7 100644 --- a/rapport/html/search/all_d.js +++ b/rapport/html/search/all_d.js @@ -1,8 +1,5 @@ var searchData= [ - ['save_5fgrid_5fto_5ffile_0',['save_grid_to_file',['../read_8c.html#a8f809f62f6622ef16b6dfe9081a124de',1,'read.c']]], - ['score_1',['Score',['../structScore.html',1,'']]], - ['screendisplay_2',['screenDisplay',['../display_8c.html#affba8627c7c6c768268f64fa670207e5',1,'display.c']]], - ['screendisplaygamesdl_3',['screenDisplayGameSDL',['../display_8c.html#a4f8faee5abaa49fb784df75266472278',1,'display.c']]], - ['structure_4',['Décision de structure',['../index.html#autotoc_md1',1,'']]] + ['rapport_0',['Rapport',['../index.html',1,'']]], + ['read_2ec_1',['read.c',['../read_8c.html',1,'']]] ]; diff --git a/rapport/html/search/all_e.js b/rapport/html/search/all_e.js index 142fcc8..945d7c0 100644 --- a/rapport/html/search/all_e.js +++ b/rapport/html/search/all_e.js @@ -1,5 +1,8 @@ var searchData= [ - ['timetotext_0',['timeToText',['../function_8c.html#a51c9ba7a24383f1b20dcedfcb570aab5',1,'function.c']]], - ['titlescreen_1',['titleScreen',['../function_8c.html#ad3517d7c8da5b33a96d376d7b07911c1',1,'function.c']]] + ['save_5fgrid_5fto_5ffile_0',['save_grid_to_file',['../read_8c.html#a8f809f62f6622ef16b6dfe9081a124de',1,'read.c']]], + ['score_1',['Score',['../structScore.html',1,'']]], + ['screendisplay_2',['screenDisplay',['../display_8c.html#affba8627c7c6c768268f64fa670207e5',1,'display.c']]], + ['screendisplaygamesdl_3',['screenDisplayGameSDL',['../display_8c.html#a4f8faee5abaa49fb784df75266472278',1,'display.c']]], + ['structure_4',['modélisation du jeu et décision de structure',['../index.html#autotoc_md1',1,'']]] ]; diff --git a/rapport/html/search/all_f.js b/rapport/html/search/all_f.js index e5c87fe..142fcc8 100644 --- a/rapport/html/search/all_f.js +++ b/rapport/html/search/all_f.js @@ -1,4 +1,5 @@ var searchData= [ - ['vecteur_0',['Vecteur',['../structVecteur.html',1,'']]] + ['timetotext_0',['timeToText',['../function_8c.html#a51c9ba7a24383f1b20dcedfcb570aab5',1,'function.c']]], + ['titlescreen_1',['titleScreen',['../function_8c.html#ad3517d7c8da5b33a96d376d7b07911c1',1,'function.c']]] ]; diff --git a/rapport/html/search/searchdata.js b/rapport/html/search/searchdata.js index 81a492f..1d016dc 100644 --- a/rapport/html/search/searchdata.js +++ b/rapport/html/search/searchdata.js @@ -1,6 +1,6 @@ var indexSectionsWithContent = { - 0: "bcdefgijlmnprstvw", + 0: "abcdefgijlmnprstvw", 1: "esv", 2: "dfmr", 3: "bcdfgilmnpstw", diff --git a/rapport/latex/index.tex b/rapport/latex/index.tex index 8ec874c..097c173 100644 --- a/rapport/latex/index.tex +++ b/rapport/latex/index.tex @@ -3,14 +3,16 @@ \label{index_md_main__page}% -Nous avons choisi d\textquotesingle{}utiliser doxygen pour faire une documentation de notre code. Nous vous rendons donc notre rapport dans cette documentation, donc la majorité de ce pdf est en faite la documentation de notre code.\doxysection{Décision de structure}\label{index_autotoc_md1} -Pour commencer on a pris comme structure pour la zone de jeu un tableau 2d de {\ttfamily char}. Nous avons pris des {\ttfamily char} car on sais qu\textquotesingle{}on a pas besoin de plus de possibilité de nombre que un octet. On a fais des {\ttfamily define} qui permet de definir quel nombre correspond à quel objet dans le jeux (joueur , caisse, mur, ...). +Nous avons choisi d\textquotesingle{}utiliser doxygen pour faire une documentation de notre code. La majorité de ce pdf est la documentation de notre code.\doxysection{modélisation du jeu et décision de structure}\label{index_autotoc_md1} +Nous sommes parti sur un tableau 2d de {\ttfamily char}afin de représenter notre plateau. Nous avons utiliser des {\ttfamily char} car on sait qu\textquotesingle{}on a pas besoin de plus de possibilité de nombre que un octet. On a fait des {\ttfamily define} qui permettent de definir quelles nombres correspondent à quel objet dans le jeu (joueur , caisse, mur, ...). Nous avons ensuite créer une structure {\ttfamily coor} qui est une structure representant des coordonnées x et y. Cela est pratique pour naviger dans le tableau 2d par exemple. -On a fais une structure de score qui prend comme variable ce qu\textquotesingle{}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 on a le nombre de déplacement fais par le joueur ainsi que les déplacement fais par les caisses. +Nous utilisons une structure de score qui prend comme variable ce qu\textquotesingle{}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 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 {\ttfamily dis} qui est enfaite la structure possédant tout ce qu\textquotesingle{}il faut pour faire l\textquotesingle{}affichage {\ttfamily SDL}. En effet on a la {\ttfamily window}, le {\ttfamily renderer}, on a la taille de la window, la taille des boites ainsi que la taille du menu.\doxysection{Comment lancé le jeu ?}\label{index_autotoc_md2} +Pour finir on a fais uns structure {\ttfamily dis} qui est une structure possédant tout ce qu\textquotesingle{}il faut pour faire l\textquotesingle{}affichage {\ttfamily SDL}. En effet on a la {\ttfamily window}, le {\ttfamily renderer}, on a la taille de la fenêtre, la taille des boites ainsi que la taille du menu. + +Nous avons fait en sorte que pour n\textquotesingle{}importe quel écran la fenêtre s\textquotesingle{}adapte à celle-\/ci.\doxysection{Comment lancer le jeu ?}\label{index_autotoc_md2} Il vous faut installer SDL2, SDL2 Mixer, SDL2 Image, SDL2 ttf, make, gcc. @@ -19,4 +21,31 @@ Il vous faut installer SDL2, SDL2 Mixer, SDL2 Image, SDL2 ttf, make, gcc. \DoxyCodeLine{./sokoban} \end{DoxyCode} - \ No newline at end of file + \doxysection{Les contrôles\+:}\label{index_autotoc_md3} + +\begin{DoxyItemize} +\item zqsd pour se déplacer +\item échap pour sortir du niveau +\item entrée pour sélectioner le niveau à jouer +\end{DoxyItemize}\doxysection{Pour aller plus loin}\label{index_autotoc_md4} +(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\textquotesingle{}é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\+: +\begin{DoxyItemize} +\item le temps passé dans le niveau. +\item le nombre de mouvements du personnage. +\item le nombre de mouvements des caisses. +\item la réussite du niveau. +\end{DoxyItemize} + +(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\textquotesingle{}éditeur sont imagé avec un escalier de couleur noir. + +(5) La partie s\textquotesingle{}arrete automatiquement si le joueur ne peut plus gagner, dans ce cas il peut alors observer son score. + +(+) L\textquotesingle{}é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\textquotesingle{}é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\textquotesingle{}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\textquotesingle{}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 ! \ No newline at end of file diff --git a/rapport/latex/refman.aux b/rapport/latex/refman.aux index 3fbaf37..d360212 100644 --- a/rapport/latex/refman.aux +++ b/rapport/latex/refman.aux @@ -9,10 +9,14 @@ \@writefile{lot}{\addvspace {10\p@ }} \newlabel{index}{{1}{1}{}{}{}} \newlabel{index_md_main__page}{{1}{1}{}{}{}} -\@writefile{toc}{\contentsline {section}{\numberline {1.1}Décision de structure}{1}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {1.1}modélisation du jeu et décision de structure}{1}{}\protected@file@percent } \newlabel{index_autotoc_md1}{{1.1}{1}{}{}{}} -\@writefile{toc}{\contentsline {section}{\numberline {1.2}Comment lancé le jeu ?}{1}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {1.2}Comment lancer le jeu ?}{1}{}\protected@file@percent } \newlabel{index_autotoc_md2}{{1.2}{1}{}{}{}} +\@writefile{toc}{\contentsline {section}{\numberline {1.3}Les contrôles\discretionary {\mbox {\scriptsize $\hookleftarrow $}}{}{}:}{1}{}\protected@file@percent } +\newlabel{index_autotoc_md3}{{1.3}{1}{}{}{}} +\@writefile{toc}{\contentsline {section}{\numberline {1.4}Pour aller plus loin}{2}{}\protected@file@percent } +\newlabel{index_autotoc_md4}{{1.4}{2}{}{}{}} \@writefile{toc}{\contentsline {chapter}{\numberline {2}Index des structures de données}{3}{}\protected@file@percent } \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} diff --git a/rapport/latex/refman.log b/rapport/latex/refman.log index 9555578..682424a 100644 --- a/rapport/latex/refman.log +++ b/rapport/latex/refman.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.141592653-2.6-1.40.26 (TeX Live 2024/Arch Linux) (preloaded format=pdflatex 2025.1.8) 9 JAN 2025 10:41 +This is pdfTeX, Version 3.141592653-2.6-1.40.26 (TeX Live 2024/Arch Linux) (preloaded format=pdflatex 2025.1.8) 9 JAN 2025 17:27 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -780,14 +780,14 @@ LaTeX Font Info: Trying to load font information for T1+pcr on input line 7. (/usr/share/texmf-dist/tex/latex/psnfss/t1pcr.fd File: t1pcr.fd 2001/06/04 font definitions for T1/pcr. -)) [1 +) [1 -] [2 - -] +]) [2] Chapter 2. -(./annotated.tex) [3] [4 +(./annotated.tex) [3 + +] [4 ] Chapter 3. @@ -926,13 +926,13 @@ L3 programming layer <2024-02-20> *********** ) Here is how much of TeX's memory you used: - 12778 strings out of 476076 - 207326 string characters out of 5793776 + 12783 strings out of 476076 + 207457 string characters out of 5793776 1949187 words of memory out of 5000000 - 34596 multiletter control sequences out of 15000+600000 + 34601 multiletter control sequences out of 15000+600000 611649 words of font info for 105 fonts, out of 8000000 for 9000 14 hyphenation exceptions out of 8191 - 101i,16n,117p,656b,607s stack positions out of 10000i,1000n,20000p,200000b,200000s + 101i,16n,117p,985b,607s stack positions out of 10000i,1000n,20000p,200000b,200000s -Output written on refman.pdf (26 pages, 153732 bytes). +Output written on refman.pdf (26 pages, 156440 bytes). PDF statistics: 167 PDF objects out of 1000 (max. 8388607) 105 compressed objects within 2 object streams diff --git a/rapport/latex/refman.pdf b/rapport/latex/refman.pdf index 047a05d931b902e13cdf620d500ddcfcc8c88c28..28c7b9697c0071c09528b02eba4cc8e84e3f14af 100644 GIT binary patch delta 32815 zcmV(_K-9m4u?d*Q39w-S0ys010SG96?VDYbn>G}N@BJ%u2^S{%{>V+Isgs>#cBW0% z(_CaT9g5`*Ee02Gll=QiM%dT}ue~4bbgYXt7z@EZ=hb_TWCOt+fZ%HMYC3xHhDjhJ z#W?}fIbaw?3JD+-jyM9-8Tb^W;pgeQ(d+5xuMsk*L4bgOk>nf*DITaV!Ks9@aHd95#dv?gl1pVd93u zPsL)PbH^%+^F)_!U+)3^!Ssg^{QuJUcR_DdOB#IFx@vZkBCpF^!fB?fm*H4obP0t1 zBbC#J`7a@ZL9ueuj7##7^vQ|Q zC�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 Zr% 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 LC@91f#NqxAF`j$b delta 30055 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 OGC4Uo3MC~)Peuwv_j8>9 diff --git a/rapport/latex/refman.toc b/rapport/latex/refman.toc index 2bf9c0a..4314e06 100644 --- a/rapport/latex/refman.toc +++ b/rapport/latex/refman.toc @@ -1,8 +1,10 @@ \@ifundefined {etoctocstyle}{\let \etoc@startlocaltoc \@gobble \let \etoc@settocdepth \@gobble \let \etoc@depthtag \@gobble \let \etoc@setlocaltop \@gobble }{} \babel@toc {nil}{}\relax \contentsline {chapter}{\numberline {1}Rapport}{1}{}% -\contentsline {section}{\numberline {1.1}Décision de structure}{1}{}% -\contentsline {section}{\numberline {1.2}Comment lancé le jeu ?}{1}{}% +\contentsline {section}{\numberline {1.1}modélisation du jeu et décision de structure}{1}{}% +\contentsline {section}{\numberline {1.2}Comment lancer le jeu ?}{1}{}% +\contentsline {section}{\numberline {1.3}Les contrôles\discretionary {\mbox {\scriptsize $\hookleftarrow $}}{}{}:}{1}{}% +\contentsline {section}{\numberline {1.4}Pour aller plus loin}{2}{}% \contentsline {chapter}{\numberline {2}Index des structures de données}{3}{}% \contentsline {section}{\numberline {2.1}Structures de données}{3}{}% \contentsline {chapter}{\numberline {3}Index des fichiers}{5}{}%