[Précédent]
[Index] | [Corrigé] | [Version imprimable]
[Prochain]

10.4
  Conception d'un jeu de stratégie - Enoncé
Niveau 2
 
 
But:
  Analyse de la conception d'un programme    
Thème:
  interface, abstract    
Fichiers:
  Unite.java    

Pour cet exercice, vous n'aurez rien à programmer. Une feuille et un crayon devraient suffire.

Un programmeur, encore débutant, décide de programmer un jeu de stratégie militaire. L’action se déroule dans un monde imaginaire peuplé par deux races: elfes et nains.

Les nains utilisent des haches et les elfes des arcs. Il y a différent types de haches et d’arcs qui sont plus ou moins efficaces. Les elfes et les nains peuvent être cavalier ou magicien.

Au cours du jeu, les joueurs disposent d’une armée composée de plusieurs unités et ont pour but de détruire l’armée ennemie.

Les unités sont caractérisées par leur race, leur points de vie restants et leur statut (mort ou en vie) ainsi que leur arme, et leur compétences (magicien ou cavalier).

Lors d’une première ébauche, notre programmeur modélise le jeu de la façon suivante (fichier fourni) :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
class  Unite  {
    private  boolean  enVie;
    private  int  pointsDeVie;
}

class  Hache  {}

class  Arc  {}

interface  Nain  {
    public  void  frappeAvecHache();
}

interface  Elfe  {
    public  void  tireFleche();
}

interface  Magicien  {
    public  void  lanceSort();
}

interface  Cavalier  {
    public  void  chevauche();
}

class  NainMagicien extends  Unite  implements Nain,  Magicien  {
    private  int  taille;
    private  Hache  hache;
    public  void  frappeAvecHache() {};
    public  void  lanceSort() {};
}

class  NainCavalier   extends  Unite  implements  Nain,  Cavalier  {
    private  int  taille;
    private  Hache  hache;
    public  void  frappeAvecHache() {};
    public  void  chevauche() {};
}

class  ElfeMagicien   extends  Unite  implements  Elfe,  Magicien  {
    private  int  poids;
    private  Arc  arc;
    public  void  tireFleche() {};
    public  void  lanceSort() {};
}

class  ElfeCavalier extends  Unite  implements Elfe,  Cavalier  {
    private  int  poids;
    private  Arc  arc;
    public  void  tireFleche() {};
    public  void  chevauche() {};
}

De plus, soucieux de plonger le joueur dans l’univers de ses créatures, il ajoute un attribut taille à tous les nains et poids à tous les elfes. En effet les nains, qui sont petits, tiennent beaucoup à ce qu’on ne sous-estime pas leur taille et les elfes, qui sont très légers, n’aiment pas qu’on surestime leur poids. Ces attributs seront utilisés pendant le jeu afin que les unités puisse s’envoyer des railleries.

Aidez notre programmeur à répondre aux questions qu’il se pose :

.. et une fois vu le cours de la semaine prochaine, petite question subsidiaire :

 


[Précédent]
[Index] | [Corrigé] | [Version imprimable]
[Prochain]