Decorator

Stratégie temps réel : Soldats armés

Nous allons nous intéresser ici à la modélisation d'un noyau d'un jeu de type STR (stratégie temps réel). Pour ce faire, considérons tout d'abord la mise en oeuvre de différents types de soldats selon la spécification suivante :

Un combat à entre deux adversaires se déroulera de la manière suivante:

void fight(Soldat s1, Soldat s2) {
Soldat attack = s1;
Soldat defend = s2;
while(s1.isAlive() && s2.isAlive()) {
    defend.parry(attack.strike());
    Soldat tmpSwap = attack;
    attack = defend;
    defend = tmpSwap;
}
if (s1.isAlive()) 
    System.out.println("Soldier 1  Won");
else
    System.out.println("Soldier 2  Won");
}

exercice 1: Architecture Objet

Élaborez et implémentez une architecture objet correspondant à la spécification ci-dessus, en utilisant le modèle de conception Décorateur afin d'équiper les soldats avec leur matériel d'armement, et de modifier ainsi leur capacités d'attaque et de défense.

exercice 2: Use case

Nous voulons modéliser les cas d'utilisation suivant:

Acteurs: Un soldat de type HorseMan **hm** et un Soldat de type InfantryMan **im**.
Scénario: 
- **hm** porte un coup à **im**
- **hm** récupère un bouclier et **im** une épée.
- **im** porte un coup à **hm**
- puis **im** récupère une épée et **hm** un bouclier.
- **hm** porte un coup à **im** puis
- **im** porte un coup à **hm**.

Donnez le diagramme de séquence modélisant ce cas d'utilisation.

exercice 3: Implémentation

Implémentez votre architecture en Java.

exercice 4: Test de recette

Implémentez le test de recette associé à notre cas d'utilisation.