Home

Rapport PacMan

image

Contents

1. e Des modifieurs pour les donn es membres void SetX unsigned int x void SetY unsigned int y void SetXf float x void SetYf float y void SetDecalX int decalx void SetDecalY int decaly void SetDirection unsigned int Direction void SetVitesse unsigned int Vitesse void SetImg unsigned int Img e Des fonctions membres particuli res void Avance unsigned int Map NblLi NbCol Cette fonction r cup re la direction du personnage et l avance d une case sauf s il y a mur auquel cas elle ne fait rien e Un destructeur Perso void e Une surcharge d operateur ostream amp operator lt lt ostream amp flux const Perso amp P Elle ne sert qu afficher les valeurs des donn es membres la console pour le d bogage 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 19 Rapport du projet Pac Man 2 Classe PacMan Comme expliqu pr c demment cette classe h rite de la classe Perso d Les donn es membres Elles sont d clar es private pour qu on ne puisse pas y acc der directement int _nbVies c est le nombre de vies restantes du joueur unsigned int _score score du joueur pour la partie depuis le premier niveau unsigned int _imgPrec sauvegarde l image pr c dente du Pac Man pour l animation de la bouche unsigned int _directionClavier direction enregistr e au clavier Ce sera la prochaine direction du Pac Man d s qu il po
2. Site Web 2 Enchainement des phases du projet La r alisation de ce projet a t d coup e en 4 principales phases e La premi re tape correspond l analyse du probl me Cette tape s est sold e par la remise du cahier des charges le 19 novembre 2007 e La seconde tape est une phase de conception durant laquelle nous avons mis en place l architecture g n rale du programme avec notamment le d coupage en plusieurs modules la d termination des relations entre ces modules et bien sur leur composition e L tape suivante est la r alisation des objectifs fix s dans le cahier des charges en s appuyant sur les r sultats de la phase de conception Cette tape peut elle m me se d couper en 3 parties e Mod les mise en place des donn es de l application les classes notamment 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 12 Rapport du projet Pac Man e Interfaces Mise en place des l ments permettant une interface avec l utilisateur Affichage contr les clavier souris e Contr les Ce dernier point concerne la gestion des donn es le d roulement du programme interactions entre les objets algorithmes de d placements e Enfin la derni re tape constitue la phase de tests Ces tests sont effectu s en parall le avec la phase de d veloppement On distingue 3 types de tests e Tests unitaires Ils permettent de v rifier l int grit de chaque module e Tests d in
3. private char _fichierMap nom du fichier contenant la carte int _niveau niveau en cours int _bonusVie sert d tecter si l on va gagner une vie chaque 10 000 points on en gagne une public unsigned int Map NbLi NbCol Carte du jeu PacMan P Pac Man Fantome F1 fant me bleu Bashful alias Inky Fantome F2 fant me orange Pokey alias Clyde Fantome F3 fant me rose Speedy alias Pinky Fantome F4 fant me rouge Shadow alias Blinky Les fonctions membres e 2 constructeurs par d faut et par recopie eu void eu const Jeu amp J aq e Des accesseurs pour les donn es membres char GetFichierMap void const int GetNiveau void const int GetBonusVie void const 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 22 Rapport du projet Pac Man e Des modifieurs pour les donn es membres void SetFichierMap char FichierMap void SetNiveau int Niveau void SetBonusVie int BonusVie e Des fonctions membres particuli res gt Fonctions d initialisation bool Init int mode Cette fonction initialise la carte et les positions des fant mes et du Pac Man Elle est appel e au commencement d une partie au d but d un niveau ou lorsque le Pac Man se fait manger par un fant me pour r initialiser les positions des personnages void PlaceBonus void Elle place un bonus dans une case vide de la carte de mani re al atoire gt Fonction de d bogag
4. C est probablement le plus intelligent de tous Il connait en permanence la position du Pac Man Ainsi il le suit quoi qu il arrive Si jamais l un de ces fant mes aper oit le Pac Man il se met imm diatement ses trousses Pour lutter contre ces fant mes le Pac Man peut manger l une des 4 pastilles sp ciales pr sentes dans le labyrinthe Ces pastilles lorsqu elles sont aval es par le Pac Man rendent les fant mes vuln rables durant une p riode de 10 secondes L utilisateur peut donc en profiter pour liminer ses adversaires Durant cette p riode de vuln rabilit les fant mes craintifs n ont qu une chose en t te fuir le plus loin possible du Pac Man Attention tout fant me d vor ressuscitera au bout d un certain temps Pastille Pastille sp ciale Fant me vuln rable Une fois l ensemble des pastilles mang es l utilisateur passe au niveau suivant La difficult du jeu augmente avec les niveaux En effet plus le joueur avance dans la partie plus la vitesse des fant mes augmente II devient donc de plus en plus difficile d chapper aux f roces fant mes L utilisateur doit bien videmment tenter de r aliser le meilleur score Il existe plusieurs moyens d augmenter celui ci Une pastille rapporte 10 points 50 points pour une pastille sp ciale Chaque fant me d vor rapporte quand lui 200 points Des bonus permettent galement d augmenter le score Ceux ci apparaissent de mani re
5. effectuer notre conception sur ces deux syst mes Nous avons veill a chaque s ance de travail a ce que le projet fonctionne correctement sous Linux et Windows XP Vista Ce projet tant r alis dans le cadre du cours de Programmation Orient e Objet il a t demand de suivre une architecture utilisant des objets De plus dans un souci de clart et de r utilisabilit du code nous avons opt pour une conception modulaire En effet chaque fonctionnalit importante du programme est impl ment e dans un module d di affichage perso jeu menu Le programme tant un jeu nous avons essay de faire en sorte que celui ci soit agr able Teil et facile prendre en main 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 11 Rapport du projet Pac Man lil Planning 1 Planning initial novembre 2007 d cembre 2007 p rec D D but Analyse Analyse 4 Jour s Conception Conception 7 Jours R alisation R alisation 16 Jour s Mod les Mod les 7 Jour s Interfaces Interfaces 11 Jours Contr le Contr le 13 Jourts Tests Tests 22 Jouns Tests unitaires Tests unitaires 9 Jouns Tests d int gration 9 Jours Tests d int gration Tests de d ploiement Tests de d ploiement 4 Jouns Rendu 32 Jouns Cahier des charges Rapport final Soutenance
6. void e Des fonctions membres particuli re void Init void initialise litem du menu e Un destructeur Menul void c Classe Menu6 Cette classe propose un menu a 6 items d Les donn es membres Elles sont d clar es public pour faciliter l acc s ChoixMenu Cl C2 C3 C4 C5 C6 Correspond aux items du menu d Les fonctions membres e Un constructeur par d faut Menu6 void e Des fonctions membres particuli re void Init int menu initialise les items du menu e Undestructeur Menu6 void 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 31 Rapport du projet Pac Man d Classe Menu Cette classe repr sente notre menu Les donn es membres Celles qui repr sentent les l ments principaux sont d clar es public afin de faciliter l acc s au plateau de jeu pour les autres modules Les autres sont d clar es private private int _etat 0 menu principal 1 partie 2 select map 3 high score 4 help 5 about 6 quit public Menu6 MenuPrincipal Menu6 MenuSelectMap Menul MenuHighScore Menul MenuHelp Menul MenuAbout Les fonctions membres e Unconstructeur par d faut Menu void e Des accesseurs int GetEtat void const e Des modifieurs void SetEtat int Etat e Des fonctions membres particuli re void Init void initialise le menu e Un destructeur Menu void 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 32 Rapport
7. Sinon On teste chaque direction Sinon si on ne peut plus continuer dans la direction Si fant me gauche de Pac Man Renvoie gauche Sinon si fant me droite de Pac Man Renvoie droite Sinon On teste chaque direction Sinon On garde la m me direction 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 29 Rapport du projet Pac Man 5 Les classes concernant le menu Nous avons un module permettant de g rer notre menu a Classe ChoixMenu Cette classe permet d afficher un item dans un menu Les donn es membres Elles sont d clar es private pour qu on ne puisse pas y acc der directement int _img repr sente l image de l item du menu double _x _y Correspond aux coordonn es de l image dans la fen tre d Les fonctions membres e Un constructeur par d faut ChoixMenu void e Des accesseurs pour les donn es membres int GetImg void const double GetX void const double GetY void const e Des modifieurs pour les donn es membres void SetImg int Img void SetX double x void SetY double y e Undestructeur ChoixMenu void 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 30 Rapport du projet Pac Man b Classe Menu1 Cette classe propose un menu 1 item Les donn es membres Elles sont d clar es public pour faciliter l acc s ChoixMenu C1 Correspond l item du menu d Les fonctions membres e Un constructeur par d faut Menul
8. vies restantes score niveau en cours Ensuite elle regarde constamment si on n est pas en fin de partie sion n est pas en fin de niveau auquel cas elle r initialise la carte void SelectMap void Elle affiche le menu correspondant qui permet de choisir une carte 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 33 Rapport du projet Pac Man void HighScore void Cette fonction lit le fichier des scores et affiche les 10 meilleurs scores l cran void Help void void About void Ces deux fonctions affichent les menus correspondants void GestionImgPacMan void void GestionImgFantomes void Ces deux fonctions g rent l animation des personnages pour leur donner un aspect vivant void Decale int param void AnimationMouvement int xl int yl int x2 int y2 int P Ces deux fonctions permettent d afficher des images entre les cases de la carte pour donner une impression de fluidit void GestionImagesMenu float x float y int menu void GestionChoixMenu float x float y int menu Ces deux fonctions permettent de mettre en surbrillance un menu point par la souris 7 Le fichier Main cxx C est le fichier principal qui appelle tous les autres Il contient uniquement des fonctions servant pour la biblioth que glut et la fonction main ainsi que des variables globales 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 34 Rapport du projet Pac Man VI Conclus
9. Ecole Sup rieure d Ing nieurs de Luminy D partement Informatique Universit de la M diterran e niormatque eS Luminy case 925 13 288 Marseille Cedex 09 T l 04 91 82 85 00 informatique esil univmed fr MEDIy LP Ep Rapport final 20 d cembre 2007 ANDRE Julie Enseignants responsables DUPRAT Boris DANIEL Marc 2 ann e MAVROMATIS S bastien Rapport du projet Pac Man OTT DZ E det ie e WE 3 Il Pr sentation du projet sinus saneminaser seen nan SEENEN eve ends 4 LL RS OL D PTE OE 4 ZY REGIES dujeui nan Eed E 4 St AE 2 LC eene end 7 a Aspect VISUEL geegent Eege eege H b Aspect contr le iii einer 11 4 Contraintes de d veloppement sisi 11 UK DEI RS tack da Saeed eased Si deed leadedoes eae 12 1 Planning iAitiall scoir rit ar ss ed0eeds edobasassdoagens sdebasids edebesaesdegeassedebaesedengetes s 12 2 Enchainement des phases du projet ss 12 3 Planning et E 13 IV Eole IAE E E E EE E E A E EE E E 14 TL langage Te 14 2 Architecture g n ralement nn tee ARETE AE aR ESEE EAA Sia 15 3 Structure des MCKIE sirrcna a head ected decease eae 16 4 Traitementdes NTEUTS fines eazavessnenases sen eege due Eesen 17 Vi Conception d taill e eege 18 1 E ISS EE PRE RE EA A SEE ee ee ee 18 2 Classe PACMAN E 20 3 Classe Fant me nn nana RNA ana dinars 21 4 Classe lettre qe a MIT Nm E Ne nd 22 a Interface d taill e nn EAR Eege sanacdeees 22 b Algorit
10. ader d Images au format bmp pour afficher nos images Nous nous sommes servis du compilateur GCC Nous avons d velopp et compil notre code sous Linux Windows XP et Windows Vista Nous avons utilis l environnement de d veloppement Microsoft Visual Studio 2005 pour le d veloppement sous Windows 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 14 Rapport du projet Pac Man 2 Architecture g n rale Nous avons d fini 4 modules principaux Personnages Plateau de jeu Menus Affichage Le module Personnage rassemble les 3 classes suivantes Perso PacMan et Fantome La classe Perso rassemble les caract ristiques d un personnage du jeu PacMan ou Fantome Nous l avons sp cialis e selon que le personnage soit Pac Man ou un des quatre fant mes Le module plateau de jeu repr sente la classe Jeu contenant tous les l ments n cessaires au d roulement d une partie savoir la carte le Pac Man et les 4 fant mes Le module Menus correspond aux 4 classes relatives aux menus Le module Affichage est regroup dans le fichier du m me nom et contient toutes les fonctions relatives l affichage FF Module Jeu Module Affichage Wee Wees Module Module Menu Personnage 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 15 Rapport du projet Pac Man 3 Structure des fichiers Pour que notre logiciel fonctionne correctement il est n cessaire que l ex cutable du jeu se trouve dans le m m
11. al atoire aussi bien sur le plan spatial que temporel Ils se mat rialisent sous la forme de petits objets 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 5 Rapport du projet Pac Man La valeur de ces bonus augmente avec les niveaux Bonus Niveaux Points erise 1 100 Fraise 2 300 Orange 3 4 500 5 6 700 Cloche I 7 8 1000 d s 2000 Il est galement possible de gagner des vies En effet tous les 10 000 points une vie vous est rajout e 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 6 Rapport du projet Pac Man 3 Interfaces L interaction entre le programme et l utilisateur se fait de fa on visuelle et par l interm diaire du clavier et de la souris a Aspect visuel L interface visuelle est compos e de 7 modes d affichage constituant les 7 tats du jeu e Menu Principal C est ce menu qui apparait lorsque l utilisateur lance le programme Il permet d acc der a l ensemble des autres interfaces en cliquant avec la souris sur les zones concern es L utilisateur peut galement revenir tout moment ce menu principal en utilisant la touche Echap du clavier 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 7 Rapport du projet Pac Man e Partie Start Interface acc d e partir du menu principal permettant de jouer au jeu Cet cran est compos de 3 parties Un en t te le jeu en lui m me et une zone d informations rel
12. an il perd une vie On r initialise les positions des personnages gt Fonctions d intelligence artificielle int PacManVisibleDepuis unsigned int x unsigned int y Cette fonction regarde si un fant me a la position x y voit Pac Man c est dire s il est sur la m me ligne ou sur la m me colonne que Pac Man et s ils ne sont pas s par s par un mur Si le fant me voit Pac Man alors il va vers lui int EloigneToiDePacMan int x int y int dir Si un fant me a la position x y se trouve une intersection ou qu il ne peut plus continuer dans sa direction cette fonction va regarder quelle est la meilleure direction prendre pour s loigner de Pac Man et renvoie cette direction Sinon elle ne change pas la direction bool PacManProchePastilleSpe int amp X int amp Y Cette fonction d tecte si le Pac Man s approche d une pastille sp ciale Si oui elle renvoie vrai Sinon elle renvoie faux void IA_DeplacerFl void Cette fonction d termine l intelligence des d placements du fant me bleu Tout d abord on teste si l on voit Pac Man Si oui on va vers lui Sinon on regarde si Pac Man est proche d une pastille sp ciale Si oui on s loigne de Pac Man le plus possible Si on ne se trouve dans aucun de ces 2 cas alors chaque intersection on choisit une direction de mani re al atoire void IA DeplacerF2 void Cette fonction d finit l intelligence des d placements du f
13. ant me orange Tout d abord on regarde si l on voit Pac Man Si oui on va vers lui Sinon chaque fois qu on est une intersection on prend une direction al atoirement void IA_DeplacerF3 void Cette fonction repr sente l intelligence des d placements du fant me rose Tout d abord on regarde teste si l on voit Pac man Si oui on se dirige vers lui Sinon on demande aux autres fant mes si l un d entre eux voit Pac Man Si oui il nous communique sa position et on choisit la meilleure direction pour se rapprocher de Pac Man Si on n est dans aucun de ces cas on choisit une direction de mani re al atoire chaque fois que Ton est une intersection void IA DeplacerF4 void Cette fonction d termine l intelligence des d placements du fant me rouge Si on est vivant on choisit la meilleure direction pour aller vers Pac Man Si on est vuln rable on s loigne le plus possible de Pac Man 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 24 Rapport du projet Pac Man gt Fonctions de d placement void MiseAJourDirectionPacMan void Cette fonction regarde la direction rentr e au clavier par le joueur Pac Man empreinte cette direction d s que possible Cela permet de m moriser la direction au clavier pour une meilleure jouabilit void MouvementPacMan int timer Cette fonction est appel e constamment car elle g re les d placements du Pac Man ainsi que les images as
14. atives la partie Score vies restantes niveau Score 0 Lives 2 e S lection du labyrinthe Select Map Ce menu permet de choisir l un des 5 labyrinthes propos s 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 8 Rapport du projet Pac Man PACMAN e Saisie du nom Ce menu permet l utilisateur de saisir son nom afin qu il soit int gr au fichier contenant les 10 meilleurs scores Cet interface n apparait qu une fois Enter your name une partie termin e et condition que le score du joueur rentre dans le Top 10 Si cette condition est remplie l utilisateur est invit saisir son nom au clavier puis le valider en appuyant sur la touche entr e du clavier HIGH SCOPE Score Player Map 216530 BOBO Map 204540 JULIE Map e High Score Cette partie affiche l cran les 12690 pedro Map 10 meilleurs scores enregistr s Elle est 9930 odile Map accessible depuis le menu principal mais 969 geng Map apparait galement automatiquement la fin 9540 kara Map d une pa rtie 8530 simon Map 6970 biales Map 6700 gertrude Map 5660 mike BACE 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 9 Rapport du projet Pac Man BAC MAN HELD Pages Guide Pacman aroud the maze and eat all the little yellow dots whilst avoiding those nasty ghosts If you e Aide Help S Cette interface permet eat Power Pill you can eat the ghosts Occasionally a fruit appears which gives you a bon
15. d en un fichier de classe Chaque fonction d finie a d abord son profil d clar dans un fichier d ent te h Le nom des donn es membres d une classe commence par un _ Le nom des variables et fonctions est le plus explicite possible sans tre trop long Si n cessaire il est accompagn d un commentaire Le nom des variables et fonctions commence par une majuscule a chaque d but de mot Par exemple CeciEstUneFonction 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 16 Rapport du projet Pac Man 4 Traitement des erreurs Nous avons utilis la directive assert pour traiter les erreurs de notre programme Ainsi lorsqu une erreur se produit le programme est arr t Il aurait t pr f rable de mettre en place un syst me permettant de g rer des exceptions mais nous avons pr f r utiliser ce que nous maitrisons vraiment 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 17 Rapport du projet Pac Man V Conception d taill e Cette section pr sente chaque module de mani re d taill e les donn es et fonctions membres pour les classes les variables globales et fonctions pour les autres modules Les algorithmes compliqu s intelligence artificielle seront d taill s en pseudo code 1 Classe Perso Dans notre jeu un personnage peut tre soit Pac Man soit un des 4 fant mes Leurs caract ristiques communes sont g r es dans cette classe amp Les donn es membres Elles
16. du projet Pac Man 6 Le module Affichage Ce module s occupe de la gestion de toutes les images du jeu void Pause unsigned int msec Cette fonction permet de faire une pause dans le jeu void rectangleplein float xl float yl float x2 float y2 int direction Elle trace un rectangle dans lequel on pourra appliquer une texture void ChargeTextures void Cette fonction charge en m moire toutes les images du jeu grace au module Texture void EcritTextei int x int y char string void EcritTextef float x float y char string Ces deux fonctions permettent d crire du texte dans la fen tre OpenGL aux coordonn es pass es en param tre void AfficheScore void void AfficheVies void void AfficheNiveau void void AfficheTemps void Ces quatre fonctions permettent d afficher les informations relatives la partie void InitAnimation void void AnimationMenu int param void GestionImages int param Ces trois fonctions permettent d afficher une petite animation d introduction dans le menu principal void MenuP void Cette fonction affiche le menu principal du jeu void Start void Cette fonction permet de lancer une partie et g re tous les v nements qui peuvent se passer Tout d abord elle initialise la carte Puis elle affiche la carte c est dire toutes les images formant la carte Elle affiche galement les informations relatives la partie nombre de
17. e void AfficheCarte void Elle affiche les valeurs de la carte Elle sert pour le d bogage uniquement gt Fonctions de fin de partie bool PartieFinie void Elle parcourt la carte et regarde s il reste des pastilles Lorsque toutes les pac gommes sont mang es le niveau est fini La fonction renvoie donc vrai bool GameOver void Elle renvoie vrai si Pac Man s est fait manger et qu il n a plus de vies void SauvegardeScore string NomJoueur int amp StopNomJoueur Cette fonction est appel e en fin de partie Elle lit le fichier des scores regarde si le joueur rentre dans le Top 10 Si oui elle lui demande son nom puis l inscrit dans le fichier des scores Elle appelle ensuite la fonction d affichage des meilleurs scores gt Fonctions d interaction entre les objets int PacManMangePastille void Cette fonction augmente le score du joueur selon ce que Pac Man mange pastilles pastilles sp ciales ou bonus Si Pac Man prend une pastille sp ciale cette fonction rend les fant mes vuln rables Tous les 10 000 points cette fonction rajoute une vie au joueur void PacManMangeFantome void Cette fonction g re le fait que si Pac Man mange un fant me vuln rable le fant me meurt pour un certain temps et le score augmente 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 23 Rapport du projet Pac Man bool FantomeMangePacMan void Cette fonction g re le fait que si un fant me mange le Pac M
18. e Nous avons tent de le rendre le plus agr able possible 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 35 Rapport du projet Pac Man Vil Autres Documents Vous pouvez consulter d autres documents rattach s ce projet notamment Le cahier des charges Le code source Le manuel d utilisation La page web pr sentant ce projet http julie andre perso esil univmed fr PacMan projetPacMan html 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 36
19. e au dessus de Pac Man On parcourt la colonne entre fant me et Pac Man pour savoir s il y a un mur S il n y a pas de mur on renvoie bas Sinon fant me en dessous de Pac Man On parcourt la colonne entre fant me et Pac Man pour savoir s il y a un mur S il n y a pas de mur on renvoie haut Sinon Renvoie 0 Fonction PacManProchePastilleSpe Cette fonction renvoie vrai si le Pac Man est proche d une pastille sp ciale Dans le cas contraire elle renvoie faux On parcourt la carte pour m moriser o sont les pastilles sp ciales Si le Pac Man est autour de l une d entre elles Renvoie vrai Sinon Renvoie faux 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 28 Rapport du projet Pac Man Fonction EloigneToiDePacMan Cette fonction renvoie la direction prendre pour s loigner le plus possible de Pac Man partir de la case pass e en param tre Selon la direction exemple pour aller en haut Si on est une intersection S1 fant me plus pr s de Pac Man en hauteur que sur les c t s S1 fant me au dessus de Pac Man Renvoie haut Sinon si fant me gauche de Pac Man Renvoie gauche Sinon si fant me droite de Pac Man Renvoie droite Sinon On teste chaque direction Sinon fant me lus pr s de Pac Man sur les c t s qu en hauteur S1 fant me gauche de PacMan Renvoie gauche Sinon si fant me droite de Pac Man Renvoie droite Sinon si fant me au dessus de Pac Man Renvoie haut
20. e dossier que les dossiers maps et images Nous avons l arborescence suivante Dossier code contenant le code source e Dossier maps contenant les cartes du jeu et le fichier des meilleurs scores e Dossier images contenant toutes les images du jeu e Ex cutable du jeu Par souci de clart et de r utilisabilit du code nous nous sommes impos des normes de programmation Tous nos fichiers comportent un ent te avec le nom du fichier les auteurs la date de FFF FF cr ation du fichier et un synopsis expliquant le contenu du fichier Eventuellement il peut y avoir une section ToDo expliquant les am liorations que l on pourrait apporter et ou une section Bugs r pertoriant les bugs connus Il est imp ratif de modifier cet ent te en cas de modification en ajoutant la date et les modifications apport es AU niveau du code dans l ordre on rencontre Les inclusions de fichiers syst mes Les inclusions de fichiers de nos modules Les variables globales d finies ailleurs mais utilis es dans le fichier Les d clarations de variables globales pour le fichier Les d clarations de classes pour un fichier d ent te de classe h Les d clarations de fonctions pour un fichier d ent te h Les d finitions de fonctions pour un fichier cxx Toutes les macros d finies sont dans le fichier Define h Toutes les variables globales sont d finies soit dans Main cxx soit dans Affichage cxx mais en aucun cas
21. hmes d intelligence Artificielle ss 25 5 Les class s concernant le menu 85e nn ten ini een ae als 30 a Class CHOIXIM GRU sessa E seems den essdsnen esse ENEE ege 30 b Classe MENU ssssscsrs sans niraseses tennis ti sn eme rende ss secenessen tes ete nets ones TAERE 31 c Classe MENG de Zeie gd etienne teint es 31 d Class Mende urnes rennes tin nine tente ES 32 6 Le m de AffiChAa ge seess 33 7 Le fichier Main E 34 Vi ele 35 Vil Autres ln EE 36 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 2 Rapport du projet Pac Man Introduction Nous avons r alis un jeu de labyrinthe de type Pac Man dans le cadre du projet de Programmation Orient e Objet propos aux tudiants de deuxi me ann e de la fili re Informatique de l ESIL L objectif de ce rapport est de pr senter le projet mais surtout notre travail Il contient une description d taill e du jeu de la phase de conception du projet de son d veloppement et un bilan Ce projet r alis en bin me a pour but de nous familiariser avec la programmation orient e objet 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 3 Rapport du projet Pac Man ll Pr sentation du projet 1 Sujet Nous avons r alis un jeu de labyrinthe de type Pac Man Ce projet a pour but de mettre en ceuvre les connaissances acquises lors des cours et TP de Programmation Orient e Objet et Infographie Il s agit galement de g rer des collisions en
22. ion Nous avons rencontr peu de difficult s durant ce projet Nous pouvons tout de m me citer d Un probl me un niveau des passages de param tres pour les fonctions de la biblioth que glut car celle ci est crite en C nous avons rencontr un l ger probl me d incompatibilit tant donn que nous d veloppons en C les fonctions membres de nos classes ne sont pas accept es en param tre Nous aurions aim d velopper plus de fonctionnalit s pour notre jeu et le peaufiner un peu plus mais nous pn avons pas eu assez de temps Par exemple nous pourrions ajouter du son am liorer les algorithmes d intelligence artificielle permettre de mettre le jeu en pause permettre d effacer des caract res dans la saisie du nom du joueur en cas d erreur Mais ce ne sont que des d tails Cependant nous avons respect nos engagements pris dans le cahier des charges aussi bien au niveau du d veloppement des fonctionnalit s du jeu qu au niveau des d lais impos s Ce projet nous a permis de nous familiariser avec la programmation orient e objet et de mieux ma triser ce concept Le travail en bin me a t particuli rement appr ciable car il est tout fait adapt ce type de projet nous a permis de travailler rapidement et efficacement Nous nous sommes beaucoup investis dans ce projet car il nous a particuli rement int ress s tant donn que c est un jeu finalis avec une interface graphiqu
23. le fant me orange IA_DeplacerF2 Si fant me vivant amp fant me voit Pac Man appel PacManVisibleDepuis Aller vers Pac Man Sinon si fant me vivant Algorithme Direction al atoire Prendre une direction al atoire si possible et autre que retour arri re Sinon on fait un retour arri re Sinon fant me vuln rable S loigner de Pac Man appel EloigneToiDePacMan Speedy alias Pinky le fant me rose IA_DeplacerF3 Si fant me vivant amp fant me voit Pac Man appel PacManVisibleDepuis Aller vers Pac Man Sinon si fant me vivant amp un autre fant me voit Pac Man appela PacManVisibleDepuis Algorithme Meilleure direction pour aller vers Pac Man cf fant me rouge IA_DeplacerF4 Sinon si fant me vivant Algorithme Direction al atoire cf fant me orange IA_DeplacerF2 Sinon fant me vuln rable S loigner de Pac Man appel EloigneToiDePacMan 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 26 Rapport du projet Pac Man Shadow alias Blinky a le fant me rouge IA DeplacerF4 Si fant me vivant amp fant me voit Pac Man appel PacManVisibleDepuis Aller vers Pac Man Sinon si fant me vivant Algorithme Meilleure direction pour aller vers Pac Man Selon la direction qu on a Si on est a une intersection Si on est plus pr s en hauteur que sur les c t s On se rapproche de Pac Man su
24. r les c t s si fant me a gauche de Pac Man on va droite sinon on va a gauche Sinon on est plus pr s sur les c t s qu en hauteur On se rapproche de Pac Man en hauteur si fant me au dessus de Pac Man on va en bas sinon on va en haut Sinon si on ne peut plus continuer dans la m me direction Si on est sur la m me ligne ou m me colonne On prend une direction al atoirement Sinon si le fant me est gauche ou au dessus de Pac Man On va droite ou au dessous Sinon si le fant me est droite ou au dessous de Pac Man On va gauche ou au dessus Sinon on n a pu prendre aucune direction On fait marche arri re Sinon On continue dans la m me direction Sinon fant me vuln rable S loigner de Pac Man appel EloigneToiDePacMan 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 27 Rapport du projet Pac Man Fonction PacManVisibleDepuis Cette fonction renvoie la direction prendre si on voit Pac Man depuis la case pass e en param tre Si on ne le voit pas renvoie O S1 fant me sur la m me ligne que Pac Man S1 fant me gauche de Pac Man On parcourt la ligne entre fant me et Pac Man pour savoir s il y a un mur S il n y a pas de mur on renvoie droite Sinon fant me droite de Pac Man On parcourt la ligne entre fant me et Pac Man pour savoir s il y a un mur S il n y a pas de mur on renvoie gauche Sinon si fant me sur la m me colonne que Pac man S1 fant m
25. soci es Cette fonction appelle toutes les fonctions d interaction entre objet pour d tecter si une action particuli re est faire Par exemple si le Pac Man mange une pastille sp ciale cette fonction rend les fant mes vuln rables et affiche le compte rebours void MouvementFantomes int timer De la m me fa on que la fonction pr c dente celle ci g re les d placements des fant mes Elle appelle les fonctions d intelligence artificielle et g re les images des fant mes e Un destructeur Jeu void b Algorithmes d Intelligence Artificielle Les fonctions suivantes sont d taill es plus loin PacManVisibleDepuis EloigneToiDePacMan PacManProchePastilleSpe Quelque soit l algorithme avant de changer une direction on v rifie toujours que celle ci est possible Bashfull alias Inky le fant me bleu IA_DeplacerF1 Si fant me vivant amp fant me voit Pac Man appel PacManVisibleDepuis Aller vers Pac Man Sinon si fant me vivant amp Pac Man proche d une pastille sp ciale appel aPacManProchePastilleSpe S loigner de Pac Man appel EloigneToiDePacMan Sinon si fant me vivant Algorithme Direction al atoire cf fant me orange IA_DeplacerF2 Sinon fant me vuln rable S loigner de Pac Man appel EloigneToiDePacMan 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 25 Rapport du projet Pac Man Pokey alias Clyde
26. sont d clar es protected pour que seules les classes filles PacMan et Fantome puissent y acc der directement unsigned int _x _y repr sentent les coordonn es du personnage dans la carte float _xf _yf repr sentent les coordonn es du personnage dans le menu principal pour l animation int _decalx _decaly repr sentent le d calage appliquer pour l affichage de l image Cela permet d avoir plus de fluidit au niveau de l affichage unsigned int _direction repr sente le sens du mouvement 1 haut 2 bas 3 gauche 4 droite unsigned int _vitesse fr quence laquelle est appel le timer qui g re le d placement unsigned int _img num ro correspondant un fichier image Les fonctions membres e 2 constructeurs par d faut par valeur et par recopie Perso unsigned int x 16 unsigned int y 9 float xf 0 float yf 0 int DecalX 0 int DecalY 0 unsigned int Direction 3 unsigned int Vitesse VITESSE_PACMAN unsigned int Img 10 Perso const Perso amp P 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 18 Rapport du projet Pac Man e Des accesseurs pour les donn es membres unsigned int GetX void const unsigned int GetY void const float GetXf void const float GetYf void const int GetDecalX void const int GetDecalY void const unsigned int GetDirection void const unsigned int GetVitesse void const unsigned int GetImg void const
27. structeurs par d faut par valeur et par recopie Fantome unsigned int x 8 unsigned int y 9 unsigned int Direction Ly unsigned int Vitesse VITESSE_FANTOME unsigned int Img 20 unsigned int Etat 1 Fantome const Fantome amp F e Des accesseurs pour les donn es membres unsigned int GetEtat void const e Des modifieurs pour les donn es membres void SetEtat unsigned int Etat e Des fonctions membres particuli res void Vulnerabilite int img Apr s avoir mang une pac gomme sp ciale les fant mes deviennent vuln rables Cette fonction les remet dans leur tat normal au bout de 10s s ils ne sont pas morts void Ressuciter int img Si un fant me se fait manger par Pac Man pendant qu il est vuln rable le fant me r apparait au centre de la carte au bout d un certain temps e Un destructeur Fantome void 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 21 Rapport du projet Pac Man e Une surcharge d operateur ostream amp operator lt lt ostream amp flux const Fantome amp F Elle ne sert qu a afficher les valeurs des donn es membres a la console pour le d bogage 4 Classe Jeu a Interface d taill e Cette classe mat rialise le plateau de jeu Les donn es membres Celles qui repr sentent les l ments principaux sont d clar es public afin de faciliter l acc s au plateau de jeu pour les autres modules Les autres sont d clar es private
28. t gration Ils valident l interaction entre les diff rents modules communiquant entre eux e Tests de d ploiement Ces derniers tests permettent de v rifier le bon fonctionnement du programme 3 Planning effectif novembre 2007 d cembre 2007 project Debut KE Analyse Analyse 4 Jouns Conception Conception 7 Jours R alisation Mod les Interfaces Contr le Tests unitaires Tests d int gration R alisation 22 Jourts Mod les 7 Jour s Interfaces 22 Jourts Contr le LIT Jours Tests 22 Jourts Tests unitaires 9 Jouns T ests d int gration 9 Jouns Tests de d ploiement Tests de d ploiement 4 Jour s 32 Jours Cahier des charges Rapport final Soutenance Site Web 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 13 Rapport du projet Pac Man IV Conception 1 Langage utilis Nous avons d velopp ce projet en utilisant le langage C afin d utiliser la programmation orient e objet Nous avons utilis les biblioth ques graphiques OpenGL et Glu pour g rer l affichage 2D Nous avons galement utilis la biblioth que Glut pour g rer le syst me de fen trage et les interruptions utilisateurs gestion du clavier et de la souris Ces biblioth ques sont gratuites et portables Nous nous sommes servis d un lo
29. tre les diff rents objets composant le plateau de jeu Pour cela nous avons travaill en bin me celui ci tant constitu de Julie Andr et Boris Duprat 2 Regles du jeu Notre jeu s inspire fortement du c l bre jeu d arcade Pac Man sorti par Namco en 1979 Les r gles de notre jeu sont donc identiques au jeu original quelques d tails pr s Le but du jeu consiste d placer un personnage nomm Pac Man l int rieur d un labyrinthe afin de lui faire manger toutes les petites pastilles jaunes qui s y trouvent Pac Man Au sein de ce labyrinthe on trouve 4 fant mes qui sont les ennemis du Pac Man L utilisateur doit donc viter de se faire d vorer par l un d entre eux Chacun des fant mes a une personnalit qui lui est propre Leurs strat gies pour venir bout du Pac Man sont donc toutes diff rentes e Bashful alias Inky Timide et craintif il s enfuit d s que le Pac Man s approche d une pastille sp ciale e Pokey alias Clyde C est le plus impr visible de tous Il a tendance fureter dans le labyrinthe au gr de ses envies sans toujours tenir compte de la position de PacMan 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 4 Rapport du projet Pac Man e Speedy alias Pinky Il communique en permanence avec ses camarades D s qu un de ses trois alli s voit le Pac Man il est mis au courant de sa position et peut ainsi commencer sa traque e Shadow alias Blinky
30. urra la prendre d Les fonctions membres e 2 constructeurs par d faut par valeur et par recopie PacMan unsigned int x 16 unsigned int y 9 unsigned int Direction 3 unsigned int Vitesse VITESSE PACMAN unsigned int Img 10 int NbVies 2 unsigned int Score 0 unsigned int ImgPrec 10 unsigned int DirectionClavier 3 PacMan const PacMan amp P e Des accesseurs pour les donn es membres int GetNbVies void const unsigned int GetScore void const unsigned int GetImgPrec void const unsigned int GetDirectionClavier void const e Des modifieurs pour les donn es membres void SetNbVies int NbVies void SetScore unsigned int Score void SetImgPrec unsigned int ImgPrec void SetDirectionClavier unsigned int Dir e Un destructeur PacMan void 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 20 Rapport du projet Pac Man e Une surcharge d operateur ostream amp operator lt lt ostream amp flux const PacMan amp P Elle ne sert qu afficher les valeurs des donn es membres la console pour le d bogage 3 Classe Fant me Comme expliqu pr c demment cette classe h rite de la classe Perso 4k Les donn es membres Elles sont d clar es private pour qu on ne puisse pas y acc der directement unsigned int _etat Correspond l tat du fant me mort vivant ou vuln rable Les fonctions membres e 2 con
31. us d afficher les informations relatives au jeu score when eaten Enough talk Let s munching comme ses r gles et son mode de fonctionnement contr le PacMan the classic arcade game is the e A propos About Affiche les informations property of Namco Das relatives au logiciel This game is a Freeware realized by ANDRE Julie and DUPRAT Boris within the framework of the object oriented programming project at ESIL 20 d cembre 2007 Julie ANDRE amp Boris DUPRAT 10 Rapport du projet Pac Man e D but du programme e Fin du programme Menu Principal Choix du labyrinthe High Score Sauvegarde du score Diagramme d tats b Aspect controle L utilisateur peut tout moment interagir avec le programme l aide du clavier ou de la souris La souris est utilis e pour la navigation dans les menus Le clavier permet principalement de contr ler le Pac Man au cours de la partie Ce contr le se fait a l aide des 4 touches directionnelles ou des 4 touches Q Z S D du clavier La touche Echap permet de revenir au menu principal ou de quitter l application si l utilisateur se trouve d j cet endroit 4 Contraintes de d veloppement Le temps imparti pour la r alisation de ce projet tant assez court 1 mois une organisation rigoureuse et une bonne r partition des taches a t n cessaire Notre programme devant tre compatible Windows et Linux nous avons d cid d

Download Pdf Manuals

image

Related Search

Related Contents

  Índice  23LCD-H5 20LCD-H5 取扱説明書  Licel Transient Recorder Programming Manual  N Generator type SERIE EC - ECO GB SELF  MX-M260/M310 Operation-Manual FR  BathWand - KellySolutions.com  

Copyright © All rights reserved.
Failed to retrieve file