Examen de Programmation Orientée Objet
IUP 2& 3
Janvier 2001
Un camarade (non informaticien) désire employer vos talents afin de réaliser
un jeu. Il vous fournit le document suivant :
Seul contre tous.
Il s'agit d'un simple jeu dans lequel interviennent des cailloux, des ogres,
des gateaux et le joueur. Ce jeu se déroule sur une grille, par une série de
tours. À chaque tour le joueur doit se déplacer puis ensuite se déplacent les
ogres. Le joueur peut se déplacer de plusieurs façons : d'une case dans les
huit directions (N, NE, E, SE, S, SO, O, NO) ou en se téléportant (il ne
contrôle pas son lieu de téléportation) si cela lui est permis. Les cailloux
sont des obstacles fixes infranchissables par le joueur mais provoquant la
disparition des ogres les heurtant. Les gateaux sont des obstacles fixes qui
permettent au joueur d'acquérir une manoeuvre de téléportation supplémentaire.
Pour les ogres, les gâteaux ne font qu'apaiser temporairement leur
gloutonnerie : un ogre qui digère un gâteau doit attendre un tour pour pouvoir
se mouvoir à nouveau. Les ogres se déplacent à chaque tour dans les huit
directions possibles et d'une case à la fois, en tentant de minimiser la
distance qui les séparent du joueur. Lorsque des ogres entrent en collision,
c'est à dire lorsqu'ils se déplacent sur une même case, (ils sont tellement
goinfres qu'ils ne se préoccupent que du joueur) ils se dévorent entre eux.
Lorsqu'un ogre mange le joueur, celui-ci perd une vie (après épuisement de
toutes ses vies le joueur a terminé sa partie). Lorsqu'un ogre disparaît cela
permet au joueur d'obtenir des points dont la somme constitue le score du
joueur. S'il ne reste plus d'ogres, alors une nouvelle configuration de
départ est créé contenant plus d'ogres, plus de gâteaux et un tout petit peu
plus de cailloux. Le joueur obtient des vies supplémentaires lorsque certains
scores sont obtenus. Il doît être possible de sauver puis restaurer la partie
courante, de retenir les 10 meilleurs scores associés aux joueurs gagnants. On
doît pouvoir abandonner, commencer une nouvelle partie.
Figure 1:
Un exemple de configuration et de déplacement du joueur.
|
Bien sur vous avez décidé d'utiliser une méthode objet! Répondez donc aux
questions suivantes :
- identifiez les objets et classes pertinents du problème en justifiant
vos choix.
- identifiez les attributs pour chacun des objets et classes.
- identifiez les méthodes pour chacun des objets et classes.
- si c'est possible et intéressant réalisez des abstractions.
- identifiez les relations entre les différentes objets et classes. Pour
cela aidez vous d'un schéma à la UML.