User Tools

Site Tools


2016_2017:s3:concprogobjet:td:td7

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
2016_2017:s3:concprogobjet:td:td7 [2016/11/06 06:00]
blay [Jeu]
2016_2017:s3:concprogobjet:td:td7 [2016/11/06 15:14]
blay [Partie 1]
Line 2: Line 2:
  
  
-voici quelques exercices simples mettant en jeu des DP+voici quelques exercices simples mettant en jeu deux DPs.
  
-===== Jeu =====+===== Partie 1 =====
 /* decorateur ​ /* decorateur ​
 */ */
Line 32: Line 32:
   * Définir un diagramme de classe permettant de représenter cette situation   * Définir un diagramme de classe permettant de représenter cette situation
   * Tester vos classes avec le scénario suivant :   * Tester vos classes avec le scénario suivant :
-L’utilisateur créun personnage nommé « Diablon » de type « Tauren » avec une corne de 15 cm. +   - Créer un personnage nommé « Diablon » de type « Tauren » avec une corne de 15 cm; 
-L’utilisateur demande au personnage de se battre. +   - Créer ​un personnage nommé « Azag» de type « Orc » avec des oreilles de 5 cm; 
-L’utilisateur crée ​un personnage nommé « Azag» de type « Orc » avec des oreilles de 5 cm +   - L’utilisateur demande ​à Diablon d'​attaquer Azag, cela n'a aucun effet; 
-L’utilisateur demande ​au personnage ​de se battre+   - L’utilisateur demande à Azag d'​attaquer Diablon, qui perd 5 points ​de vitalité;​ 
-L’utilisateur crée un personnage nommé « ArKor» de type « Troll », bière préférée « Heineken ». +   - On modifie l'arme associée à Diablon en la rendant magique avec un coefficient de 2; 
-L’utilisateur demande au personnage ​de se battre+   - Diablon attaque Azag qui perd 5 points de vitalité;​ 
-L’utilisateur crée ​un personnage ​nommé « Kir» de type « Humain» ​avec des yeux bleus+   - On modifie l'arme associée à Diablon en lui ajoutant un amplificateur de coefficient 3; 
-L’utilisateur demande au personnage ​de se battre. +   ​- ​ Diablon attaque Azag qui perd 8 points de vitalité;​ 
-L’utilisateur change l’arme ​de Diablon ​et lui confie ​une épée+   - ...
-L’utilisateur demande à Diablon ​de se battre.+   - L’utilisateur crée un personnage nommé « ArKor» de type « Troll », bière préférée « Heineken ». 
 +   - etc. 
 + 
 +//​Facultatif :// On aimerait à présent que la force d'une arme soit proportionnelle à la vitalité ​de l'​attaquant et la force protectrice proportionnelle à la vitalité de celui qui reçoit le coup
 + 
 +**Remarques :**  
 +   * que se passe-t-il si un personnage ​est attaqué ​avec une force inférieure à sa capacité à se protéger?​ 
 + 
 +===== Partie 2 ===== 
 +/* Fabrique 
 +*/ 
 + 
 +Au fur et à mesure que le jeu est mis sur le marché, pour "​créer du hype", on veut pouvoir ajouter de nouvelles armes, y compris ​des extensions, sans modifier l'​ensemble du jeu
 +L'idée est de : 
 +  - ne pas modifier les classes d'​armes définies précédemment;​ 
 +  - pouvoir créer des armes à partir ​de leur type et avec un nom donné (ex: créer ​une épée de nom //​excalibur//​);​ 
 +  - retrouver une arme à partir de son nom; 
 +  - améliorer des armes (ex : amplifier excalibur d'un comportement magique de force 10)
 + 
 + 
 +exemple ​de scenario de test :  
 +<code java> 
 +        WeaponFactory wf = new WeaponFactory();​ 
 +        Weapon w = wf.createWeapon("​SWORD","​excalibur"​);​ 
 +        w = wf.improve("​AMPLIFIED","​excalibur",​ 5); 
 +        assertEquals(30,​w.strength());​ 
 +        assertEquals(5,​w.protection());​ 
 +        w = wf.improve("​Magic","​excalibur",​ 10); 
 +        assertEquals(300,​w.strength());​ 
 +        assertEquals(50,​w.protection());​ 
 +</​code>​ 
 +         
 +         
 +Les Personnages au début sont créés en fonction des classes d'​armes prévues. Modifier votre code pour ne plus dépendre de ces classes d'​implémentation. 
 + 
 + 
  
-On aimerait à présent que la force d'une arme soit proportionnelle à la vitalité de l'​attaquant et la force protectrice proportionnelle à la vitalité de celui qui reçoit le coup. 
2016_2017/s3/concprogobjet/td/td7.txt · Last modified: 2016/12/05 11:11 by blay