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 revisionNext revisionBoth sides next revision | ||
2016_2017:s3:concprogobjet:td:td7 [2016/11/06 05:00] – [Jeu] blay | 2016_2017:s3:concprogobjet:td:td7 [2016/12/05 09:25] – [Partie 4] 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 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 : xxx à 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.txt · Last modified: 2016/12/05 10:11 by blay