2016_2017:s3:concprogobjet:td:td7
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| 2016_2017:s3:concprogobjet:td:td7 [2016/11/05 22:42] – blay | 2016_2017:s3:concprogobjet:td:td7 [2016/12/05 10:11] (current) – [Partie 3] blay | ||
|---|---|---|---|
| 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 11: | Line 11: | ||
| Les personnages savent se battre en utilisant des armes qui peuvent être des dagues, des épées et des boucliers. | Les personnages savent se battre en utilisant des armes qui peuvent être des dagues, des épées et des boucliers. | ||
| - | Une arme a une force d' | + | Une arme a une force d' |
| Pour l' | Pour l' | ||
| * dague : force : 20, protection : 10 | * dague : force : 20, protection : 10 | ||
| Line 22: | Line 22: | ||
| L’utilisateur du jeu doit avoir la possibilité d’ordonner à un personnage de se battre contre un autre. Celui qui est attaqué (B) voit sa vitalité décroitre d'un coefficient qui correspond à la force de l' | L’utilisateur du jeu doit avoir la possibilité d’ordonner à un personnage de se battre contre un autre. Celui qui est attaqué (B) voit sa vitalité décroitre d'un coefficient qui correspond à la force de l' | ||
| - | En fonction du jeu, il est possible d' | + | En fonction du jeu, il est possible d' |
| + | On veut pouvoir ainsi ajouter en fonction des jeux que nous diffuserons différentes manières d'" | ||
| Ces armes modifiés sont manipulables comme des armes normales. | Ces armes modifiés sont manipulables comme des armes normales. | ||
| Line 32: | Line 33: | ||
| * 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ée 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 |
| - | L’utilisateur crée | + | - L’utilisateur demande |
| - | L’utilisateur demande | + | - L’utilisateur demande à Azag d' |
| - | 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 | + | - Diablon attaque Azag qui perd 5 points de vitalité; |
| - | L’utilisateur crée | + | - On modifie l'arme associée à Diablon en lui ajoutant un amplificateur de coefficient 3; |
| - | L’utilisateur demande au personnage de se battre. | + | |
| - | L’utilisateur change | + | - .... |
| - | L’utilisateur demande à Diablon | + | - L’utilisateur crée un personnage nommé « ArKor» de type « Troll », bière préférée « Heineken ». |
| + | - etc. | ||
| + | |||
| + | // | ||
| + | |||
| + | **Remarques :** | ||
| + | * que se passe-t-il si un personnage est attaqué avec une force inférieure à sa capacité à se protéger? | ||
| + | * quelles sont les conséquences d'un ordre différent d' | ||
| + | |||
| + | ===== Partie 2 ===== | ||
| + | /* Fabrique | ||
| + | */ | ||
| + | |||
| + | Au fur et à mesure que le jeu est mis sur le marché, pour " | ||
| + | L'idée est de : | ||
| + | - ne pas modifier les classes d' | ||
| + | - pouvoir créer des armes à partir de leur type et avec un nom donné (ex: créer une épée de nom // | ||
| + | - 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(" | ||
| + | w = wf.improve(" | ||
| + | assertEquals(30, | ||
| + | assertEquals(5, | ||
| + | w = wf.improve(" | ||
| + | assertEquals(300, | ||
| + | assertEquals(50, | ||
| + | </ | ||
| + | |||
| + | |||
| + | Les Personnages | ||
| + | |||
| + | ===== Partie 3 ===== | ||
| + | |||
| + | On désire pouvoir manipuler des personnages individuels et également des groupes tels que armés, des bataillons ou des hordes. Une armée est composée de généraux (personnages individuels) et de bataillons. | ||
| + | |||
| + | Lors d'une attaque par groupe, sa force est proportionnelle à la force de ses attaquants. | ||
| + | |||
| + | De même pour la puissance protectrice. | ||
| + | |||
| + | ===== Partie 4 ===== | ||
| + | On veut pouvoir créer des personnages automatiquement, | ||
| + | La création d'un personnage | ||
| + | La coût de création d'un groupe dépend du type de groupe : pour une Horde, c'est la somme du coût des personnages qui la composent, multipliée par 0.75. | ||
| + | * Ainsi create(" | ||
| + | * De même CreateGroup(" | ||
| + | * CreateGroup(" | ||
| + | * Créer une armée est un peu plus complexe. CreateGroup(" | ||
| + | |||
| + | |||
| + | //Bien sûr, les personnages se déplacent, les groupes aussi, etc. mais ce sera pour une autre année.// | ||
| + | |||
| + | ===== Rendu ===== | ||
| + | |||
| + | - un diagramme UML qui visualise uniquement les classes/ | ||
| + | * le diagramme vise à visualiser l' | ||
| + | * les attributs faisant référence à des classes/ | ||
| + | * pas de getter et setter | ||
| + | * pas de classes non directement utilisées par exemple. | ||
| + | * les différents patterns apparaissent sous forme d' | ||
| + | * le diagramme peut être obtenu par reverse-engineering mais doit être adapté pour répondre aux points précédents. | ||
| + | - les codes sources des classes que vous avez créées ou modifiées exclusivement. | ||
| + | |||
| + | La date du rendu au plus tard : 6/12 à 23h45 | ||
| + | |||
| + | |||
| + | Sur [[http:// | ||
| + | |||
| - | On aimerait à présent que la force d'une arme soit proportionnelle à la vitalité de l' | ||
2016_2017/s3/concprogobjet/td/td7.1478385721.txt.gz · Last modified: 2016/11/05 22:42 by blay