User Tools

Site Tools


2016_2017:s3:concprogobjet:td:td7

This is an old revision of the document!


Table of Contents

Design Patterns

voici quelques exercices simples mettant en jeu des DP

Partie 1

On souhaite modéliser le fonctionnement d’un jeu comportant différents types de personnages : des humains (nom + couleur des yeux), des trolls (nom + nom bière préférée), des orcs(nom + taille des oreilles) et des Taurens (nom + taille de la corne)..

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'attaque et une force protectrice. Pour l'instant on considère ces forces comme des constantes :

  • dague : force : 20, protection : 10
  • epee : force : 25, protection : 5
  • bouclier : force : 5, protection : 20

Au début de sa vie un personnage a un coefficient de vitalité de 100. Il est affaibli au cours de sa vie, ce qui réduit son coefficient de vitalité.

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'attaquant (force de son arme) - sa propre force protectrice (force protectrice de son arme).

En fonction du jeu, il est possible d'améliorer les armes en leur associant un amplificateur ou une force protectrice supplémentaire, de coefficient donné (opération plus). Il est également possible d'enchanter une arme ce qui a pour effet de multiplier la puissance de frappe et protectrice par un coefficient fonction du sortilège.

Ces armes modifiés sont manipulables comme des armes normales.

A un moment donné du jeu, un personnage ne manipule qu’une seule arme, au moins dans un premier temps. Cependant, il peut changer d’arme plusieurs fois au cours du déroulement du jeu.

On suppose que chaque personnage est associé à une arme par défaut (Orcs : épée ; Troll : dague ; Tauren : bouclier, Humain : épée).

  • Définir un diagramme de classe permettant de représenter cette situation
  • Tester vos classes avec le scénario suivant :
  1. Créer un personnage nommé « Diablon » de type « Tauren » avec une corne de 15 cm;
  2. Créer un personnage nommé « Azag» de type « Orc » avec des oreilles de 5 cm;
  3. L’utilisateur demande à Diablon d'attaquer Azag, cela n'a aucun effet;
  4. L’utilisateur demande à Azag d'attaquer Diablon, qui perd 5 points de vitalité;
  5. On modifie l'arme associée à Diablon en la rendant magique avec un coefficient de 2;
  6. Diablon attaque Azag qui perd 5 points de vitalité;
  7. On modifie l'arme associée à Diablon en lui ajoutant un amplificateur de coefficient 3;
  8. Diablon attaque Azag qui perd 8 points de vitalité;
  9. ….
  10. L’utilisateur crée un personnage nommé « ArKor» de type « Troll », bière préférée « Heineken ».
  11. 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.

Partie 2

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 :

  1. pouvoir créer des armes à partir de leur type (créer une épée)
  2. retrouver

on aimerait pouvoir améliorer cette logique : à la création d'un personnage, l'arme qui lui est associé et déterminé en fonction du prix mis par le joueur (nombre de points).

De plus, maintenant que les armes ont un coût on veut pouvoir associer une arme à un joueur…

La construction des personnages dépend des classes d'armes identifiées au début.

2016_2017/s3/concprogobjet/td/td7.1478438365.txt.gz · Last modified: 2016/11/06 14:19 by blay