Ce dossier technique a pour but de présenter en détail toute la partie programmation sur laquelle nous avons dû travailler dans le cadre du projet TSHAI. Pour ce projet, il nous a été demandé de créer un jeu d'aventures dans lequel le joueur devait diriger un héros et ses robots afin de parcourir une planète et délivrer le Pnume sacré, prêtre de la planète Crypton capturé par les dirigeants de la planète Tshaï.
La réalisation de notre programme a été découpée en plusieurs phases, mettant en œuvre les notions apprises en cours d'algorithme et programmation. Cela a consisté en :
- Création et implémentation de différentes structures composant l'environnement
- Création de l'interface de saisie des données par les joueurs
- Analyse des données et mise en place d'une structure de gestion des données
- Sauvegarde et restauration des instructions saisies.
[...] Tshaï : un jeu d'aventures Table des matières INTRODUCTION 2 I. Structures de données et arborescence de menus 2 Les structures 2 Les menus 4 II. Organisation des programmes et des modules 6 Saisie des actions 6 Analyseur syntaxique 6 III. Explication d'un point technique difficile et intéressant 9 La sauvegarde 9 Introduction Ce dossier technique a pour but de présenter en détail toute la partie programmation sur laquelle nous avons dû travailler dans le cadre du projet TSHAI. Pour ce projet, il nous a été demandé de créer un jeu d'aventures dans lequel le joueur devait diriger un héros et ses robots afin de parcourir une planète et délivrer le Pnume sacré, prêtre de la planète Crypton capturé par les dirigeants de la planète Tshaï. [...]
[...] Type_outils, qui est un attribut de type type_outil, qui indique si l'outil créé est de type précieux ou pratique, défini par : enum type_outil{precieux,pratique}; Energie_outils, attribut permettant de définir l'énergie que possède un outil, à savoir que cette énergie est fixée à 50 lors de la création de l'outil. Cette variable est de type energie, défini par : typedef int energie; Dans le champ public, nous trouvons les méthodes permettant le bon fonctionnement d'un objet créé, avec tout d'abord le constructeur d'initialisation outils qui crée un outil aléatoirement, avec une énergie de base fixée à 50. Ensuite il y a un constructeur prenant comme paramètre un nom d'outil ainsi qu'un type, pour nous permettre de créer un outil bien précis. [...]
[...] Le programme se termine s'il décide de ne rien faire. Voici la procédure menu appelée par le programme : void menu(string& programme){ string coutlien_IM=NULL; aux=b; aux->nombloc=s; Le nom du bloc est égal à s stocker_action(aux->lien_IM," On stocke l'action du bloc dans la boite IM pointée //par ce bloc } else{ aux=b; On cherche le dernier bloc de la file while(aux->lien_bloc){ aux=aux->lien_bloc; } aux->lien_bloc=new boite_bloc;// On crée une nouvelle boite à la suite aux=aux->lien_bloc; aux->lien_IM=NULL; aux->lien_bloc=NULL; aux->nombloc=recup_mot(c); On récupère le nom du bloc stocker_action(aux->lien_IM," } else{ stocker_action(aux->lien_IM->lien_IM," } } } declaration=true; Quand la procédure se termine c'est qu'on a analysé tous les blocs } Cette procédure déclare tout d'abord une file de blocs aux égales à la file de bloc passée en paramètre. [...]
[...] Le deuxième menu propose dans un premier temps de saisir une instruction, dans un second temps plusieurs instructions, et enfin rien. Le choix rien n'est pas incohérent, ce menu n'apparaissant pas seulement au début de l'arborescence, il permet à l'utilisateur de finir sa saisie quand il le souhaite. Si le joueur désire faire une instruction, il doit désigner le robot qui accomplira cette tâche, puis définir quel bloc va subir l'action. Dans le cas où le joueur veut faire plusieurs instructions, il est invité à définir quel type d'action il veut accomplir (conditionnelle, boucle ou action simple). [...]
[...] class personnage{ protected: nom nom_personnage; int vitesse; energie energie_perso; int parallele_personnage; int meridien_personnage; sac sac_du_personnage; En effet, cette classe est primordiale, car elle est l'ancêtre des classes heros, monstre, et robot. Tous ces personnages ont des caractéristiques communes, nous avons donc créé cette classe personnage pour ensuite réinvestir les notions d'héritage vues en cours. Ces caractéristiques communes sont nom_personnage, qui donne un nom au personnage créé, vitesse, qui définit la vitesse de déplacement du personnage (initialisée à energie_perso, qui comme pour un outil, est un entier initialisé à 50. [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture