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.
\includegraphics[]{diagramme.eps}
Bien sur vous avez décidé d'utiliser une méthode objet! Répondez donc aux questions suivantes :
  1. identifiez les objets et classes pertinents du problème en justifiant vos choix.
  2. identifiez les attributs pour chacun des objets et classes.
  3. identifiez les méthodes pour chacun des objets et classes.
  4. si c'est possible et intéressant réalisez des abstractions.
  5. identifiez les relations entre les différentes objets et classes. Pour cela aidez vous d'un schéma à la UML.