cahier des charges pacman

Transcription

cahier des charges pacman
Ecole Supérieure d’Ingénieurs de Luminy
Département Informatique
Université de la Méditerranée
Luminy case 925
13 288 Marseille Cedex 09
Tél. 04 91 82 85 00
[email protected]
Cahier des charges
19 novembre 2007
ANDRE Julie
DUPRAT Boris
2ème année
Enseignants responsables :
DANIEL Marc
MAVROMATIS Sébastien
Cahier des charges
Sommaire
I – INTRODUCTION .............................................................. - 3 1 – Objet ................................................................................. - 3 2 – Contexte ........................................................................... - 3 3 – Terminologie ..................................................................... - 4 -
II – DESCRIPTION DU PRODUIT ........................................ - 5 1 – Caractéristiques ................................................................ - 5 2 – Interface ........................................................................... - 6 3 – Exigences non fonctionnelles ............................................ - 6 -
III – LIVRABLES .................................................................... - 7 IV – CONDITIONS DE REALISATION ................................. - 8 1 – Délai de réalisation ........................................................... - 8 2 – Contraintes de développement ........................................ - 8 3 – Suivi de la réalisation ........................................................ - 8 -
V – Annexes ......................................................................... - 9 Document de conception ....................................................... - 9 -
ANDRE Julie
DUPRAT Boris
Projet Pac-Man
2ème année
-2-
Cahier des charges
I – INTRODUCTION
L’objectif de notre projet est de réaliser un jeu de labyrinthe de type Pac-Man.
1 – Objet
Ce cahier des charges a pour but de présenter ce projet. Il inclut donc
une description détaillée, visant à définir les spécifications de base de notre
produit. Il définit également les objectifs à atteindre et permet d’évaluer la
charge de travail ainsi que le temps nécessaire à sa réalisation.
2 – Contexte
La réalisation de ce jeu s’inscrit dans le cadre du projet de
programmation orientée objet proposé aux étudiants de 2ème année de la filière
Informatique de l’ESIL. Ce projet, réalisé en binôme, a donc pour but de nous
familiariser avec ce type de programmation.
ANDRE Julie
DUPRAT Boris
Projet Pac-Man
2ème année
-3-
Cahier des charges
3 – Terminologie
Le vocabulaire utilisé tout au long de cette présentation peut contenir un
vocabulaire spécifique à l’univers du jeu Pac-Man, il est donc préférable
d’expliciter le sens de chacun de ces mots afin que tout soit parfaitement clair.
- Pac-Man : Pac-Man est le personnage emblématique du jeu. En forme
de rond jaune et doté d’une bouche, il est contrôlé par
l’utilisateur.
- Fantômes : Il y a quatre fantômes qui sont les ennemis du Pac-Man. Ils
ont pour but de le tuer.
- Pac-gomme : Une pac-gomme est une pastille jaune dont se nourrit le
Pac-Man. Il existe quatre pac-gommes spéciales qui
rendent les fantômes vulnérables durant une certaine
période.
- Bonus : Les bonus se matérialisent sous forme de fruits. Ils rapportent
des points supplémentaires au Pac-Man si celui-ci les mange.
ANDRE Julie
DUPRAT Boris
Projet Pac-Man
2ème année
-4-
Cahier des charges
II – DESCRIPTION DU PRODUIT
1 – Caractéristiques
Le Pac-Man, sorti en 1979, est un jeu d’arcade très célèbre. Cependant il
semble nécessaire d’en rappeler le principe de fonctionnement.
Le but du jeu est de faire ramasser au Pac-Man toutes les pac-gommes à
l’intérieur du labyrinthe, en évitant d’être touché par des fantômes. Le PacMan peut dévorer les fantômes pendant un temps limité après avoir ramassé
une des 4 pac-gomme spéciales. Le joueur dispose de 3 vies.
Il peut augmenter son score :
- en ramassant des pac-gommes (10 points pour une classique, 50 pour
une spéciale)
- en dévorant les fantômes (200 points pour le premier, le double pour
les suivants pour une même pac-gomme)
- en ramassant des bonus dont le nombre de points rapportés
augmente avec les niveaux.
Une fois toutes les pac-gommes ramassées, le joueur passe au niveau
suivant. Plus il avance dans les niveaux, plus les fantômes sont rapides afin
d’augmenter la difficulté.
Notre programme respectera au maximum les règles du jeu original.
Nous essaierons de rendre l’intelligence artificielle des fantômes la plus
évoluée possible, notamment en personnalisant le comportement de chaque
fantôme, si le temps nous le permet.
ANDRE Julie
DUPRAT Boris
Projet Pac-Man
2ème année
-5-
Cahier des charges
2 – Interface
Le jeu se lancera dans une fenêtre OpenGL. L’utilisateur accèdera
directement au menu qu’il pourra gérer avec la souris. Le joueur aura le choix
entre :
-
commencer une partie avec le labyrinthe par défaut
sélectionner un des labyrinthes alternatifs
consulter les meilleurs scores
afficher les règles du jeu
quitter l’application
Une fois la partie démarrée, le Pac-Man sera contrôlé à l’aide du Pad
directionnel du clavier.
L’utilisateur peut s’il le souhaite, créer ses propres labyrinthes en
modifiant un fichier texte contenant un modèle de référence.
3 – Exigences non fonctionnelles
Notre jeu sera exécuté sous Linux et sous Windows. Les librairies Glut et
OpenGL seront fournies.
Le programme étant relativement léger, les problèmes de performance
ne se posent pas. Nous essayerons simplement de rendre l’affichage le plus
fluide possible.
Notre jeu étant un projet dans le cadre de nos études, il sera gratuit et
libre de droits.
Les utilisateurs ayant la possibilité de créer leur propre labyrinthe en
modifiant le fichier texte de référence, il est nécessaire que la carte soit valide.
En effet, le Pac-Man doit pouvoir ramasser l’ensemble des pac-gommes. De
plus, l’utilisateur ne devra pas modifier le nom de ce fichier.
ANDRE Julie
DUPRAT Boris
Projet Pac-Man
2ème année
-6-
Cahier des charges
III – LIVRABLES
Une fois le projet achevé, les éléments suivants seront livrés à l’E.S.I.L. :
-
le présent cahier des charges
un exécutable du Pac-Man et son code source
un manuel d'utilisation du jeu
un site web de présentation du projet
un rapport du projet
ANDRE Julie
DUPRAT Boris
Projet Pac-Man
2ème année
-7-
Cahier des charges
IV – CONDITIONS DE REALISATION
1 – Délai de réalisation
Ce cahier des charges devra être rendu au plus tard le lundi 19 novembre
2007.
Notre projet devra être terminé pour le vendredi 21 décembre 2007 date
à laquelle l’ensemble des documents seront livrés. La soutenance aura lieu le
mercredi 19 décembre 2007.
2 – Contraintes de développement
Ce projet devra être développé en C++, il utilisera donc les techniques de
la programmation orientée objet. Concernant l’interface graphique, nous nous
servirons des librairies OpenGL.
Par souci de qualité, nous programmerons en suivant certaines règles
dans le but d’obtenir un code bien structuré et donc réutilisable et facile à
maintenir.
3 – Suivi de la réalisation
Nous communiquerons régulièrement à nos clients l’état d’avancement
de notre projet par l’intermédiaire de mails ou directement dans les locaux
durant les heures consacrées à ce projet.
Pour toute remarque ou suggestion, nous sommes joignables par mail aux
adresses suivantes :
[email protected]
[email protected]
ANDRE Julie
DUPRAT Boris
Projet Pac-Man
2ème année
-8-
Cahier des charges
V – Annexes
Document de conception
Pour ce projet, nous avons distingué deux « choses » :
- le labyrinthe
- les personnages
Nous avons décidé de représenter le labyrinthe par un tableau
bidimensionnel. Pour être visible de tous, cette donnée est globale. Cette
matrice contient des entiers représentant les différents éléments (murs, pacgommes classique et spéciales, bonus, Pac-Man et fantômes).
Les personnages du jeu, aussi bien le Pac-Man et les Fantômes, ont des
caractéristiques communes. Nous avons donc décidé de rassembler ces
données communes dans une classe Perso. Nous spécialisons les personnages
avec deux classes : Pac-Man et Fantôme (héritant donc de la classe Perso).
Perso
PacMan
ANDRE Julie
DUPRAT Boris
Fantome
Projet Pac-Man
2ème année
-9-
Cahier des charges
Nous pensons représenter ces données de la manière suivante :
class Perso
{
protected :
unsigned int _x, _y; // coordonnees
unsigned int _direction; // sens du mouvement
(1:haut, 2:bas, 3:gauche, 4:droite)
unsigned int _vitesse; // 0 : normal, 1 : rapide
unsigned int _img; // numero correspondant a un
fichier image
public :
// constructeurs
Perso (void); // par defaut
Perso (unsigned int x, unsigned int y, unsigned int
Direction, unsigned int Vitesse, unsigned int Img); // par
valeur
Perso (const Perso & P); // par recopie
// accesseurs
unsigned int GetX (void) const;
unsigned int GetY (void) const;
unsigned int GetDirection (void) const;
unsigned int GetVitesse (void) const;
unsigned int GetImg (void) const;
// modifieurs
void SetX (unsigned int x);
void SetY (unsigned int y);
void SetDirection (unsigned int Direction);
void SetVitesse (unsigned int Vitesse);
void SetImg (unsigned int Img);
// autres fonctions
virtual void Affiche (void) = 0; // affiche a la
console les informations du perso
virtual void Avance (void) = 0; // recupere la
direction et avance jusqu'au mur (le labyrinthe fait 19 par
22)
// destructeur
~Perso (void);
// surcharge d'operateurs
friend ostream & operator << (ostream & flux, const
Perso & P); // affiche a la console les informations du perso
}; // classe Perso
ANDRE Julie
DUPRAT Boris
Projet Pac-Man
2ème année
- 10 -
Cahier des charges
class PacMan : public Perso
{
private :
int _nbVies;
unsigned int _score;
public :
// constructeurs
PacMan (unsigned int Direction = 3, unsigned int
Vitesse = 0, unsigned int Img = 1, int NbVies = 2, unsigned
int Score = 0); // par defaut et par valeur
PacMan (const PacMan & P); // par recopie
// accesseurs
int GetNbVies (void) const;
unsigned int GetScore (void) const;
// modifieurs
void SetNbVies (int NbVies);
void SetScore (unsigned int Score);
// autres fonctions
void Affiche (void); // affiche a la console les
informations du perso
void Avance (void); // recupere la direction et
avance jusqu'au mur
// destructeur
~PacMan (void);
// surcharge d'operateurs
friend ostream & operator << (ostream & flux, const
PacMan & P); // affiche a la console les informations du perso
}; // classe PacMan
ANDRE Julie
DUPRAT Boris
Projet Pac-Man
2ème année
- 11 -
Cahier des charges
class Fantome : public Perso
{
private :
unsigned int _etat; // 0: vivant, 1 : vulnerable, 2 :
mort
public :
// constructeurs
Fantome (void); // par defaut
Fantome (unsigned int x, unsigned int y, unsigned int
Direction = 1, unsigned int Vitesse = 0, unsigned int Img =
20, unsigned int Etat = 0); // par valeur
Fantome (const Fantome & F); // par recopie
// accesseurs
unsigned int GetEtat (void) const;
// modifieurs
void SetEtat (unsigned int Etat);
// autres fonctions
void Affiche (void); // affiche a la console les
informations du perso
void Avance (void); // recupere la direction et
avance jusqu'au mur
void IA_Deplacer (void);
void Ressuciter (void); // si un fantome se fait
manger, le fantome reapparait au centre de la carte au bout
d'un certain temps
// destructeur
~Fantome (void);
// surcharge d'operateurs
friend ostream & operator << (ostream & flux, const
Fantome & F); // affiche a la console les informations du
perso
}; // classe Fantome
ANDRE Julie
DUPRAT Boris
Projet Pac-Man
2ème année
- 12 -