S3 : Conception et Programmation Objet Avancées
-
- Attention pensez au rendu de fin de module
This is an old revision of the document!
voici quelques exercices simples mettant en jeu deux DPs.
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 1) Pour l'instant on considère ces forces comme des constantes :
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).
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).
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. On veut pouvoir ainsi ajouter en fonction des jeux que nous diffuserons différentes manières d'“améliorer” les armes (les rendre invisibles, leur donner une puissance seulement pendant un temps donné, leur puissance dépend de l'état du jeu, etc.)
Ces armes modifiés sont manipulables comme des armes normales.
exemple de scénario :
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 :
Au fur et à mesure que le jeu est mis sur le marché, pour “créer du hype”, on veut pouvoir ajouter de nouvelles armes, sans modifier l'ensemble du jeu. L'idée est de :
exemple de scenario de test :
WeaponFactory wf = new WeaponFactory(); Weapon w = wf.createWeapon("SWORD","excalibur");
Les Personnages au début sont créés en fonction des classes d'armes prévues. Modifiez votre code pour ne plus dépendre de ces classes d'implémentation.
On désire pouvoir manipuler des personnages individuels et également des groupes tels que des armées, des bataillons ou des hordes.
La force d'une attaque
De même pour la puissance protectrice.
On veut pouvoir créer des personnages et des groupes automatiquement, sans modifier les personnages définis précédemment.
* Ainsi create(“Humain”, “Arthur”,Joueur) (i) retourne un personnage “Humain”, (ii) associe ce personnage au Joueur, et (iii) décrémente la bourse du joueur de la somme correspondante.
Bien sûr, les personnages se déplacent, les groupes aussi, etc. mais ce sera pour une autre année.
La date du rendu au plus tard : 6/12 à 23h45
Sur Jalon avec comme nom pour l'archive : Gr <numeroGroupe> + Nom des étudiants dans le groupe