Skip to content

Instantly share code, notes, and snippets.

@bastienapp
Last active June 22, 2023 15:56
Show Gist options
  • Select an option

  • Save bastienapp/98c03d9573ac2858325375d5529174f4 to your computer and use it in GitHub Desktop.

Select an option

Save bastienapp/98c03d9573ac2858325375d5529174f4 to your computer and use it in GitHub Desktop.

Elemental Monsters

1. Les monstres

Créer une classe abstraite Monster avec les attributs :

  • name (String)
  • damage (int)
  • life (int)
  • type (String)

Créer un constructeur permettant d'initialiser ses attributs, sauf type qui aura la valeur "Normal" par défaut.

Ajouter une méthode instanciée takeHit, qui prend une instance de monstre adverse en argument : l'attribut damage du monstre adverse doit être soustrait à l'attribut life de l'instance en cours.

De plus, la méthode doit afficher "{name} has {life} points remaining." si le nombre de point de vie est supérieur à zéro, ou "{name} is KO!" sinon.

2. Les types

Créer des classes FireMonster, GrassMonster, WaterMonster héritant de Monster.

Leur ajouter un constructeur héritant du parent, qui modifiera la valeur de l'attribut type afin d'y stocker "fire", "grass" ou "water" selon les cas.

Redéfinir la méthode takeHit afin de modifier les dégâts infligés selon la valeur de l'attribut type des deux monstres :

  • "fire" -> "grass", "grass" -> "water", "water" -> "fire" : damage x 2
  • "grass" -> "fire", "water" -> "grass", "fire" -> "water" : damage / 2

3. L'arêne

Créer une classe Arena avec une méthode main().

Permettre au joueur de sélectionner un monstre parmi une liste et de choisir le monstre adverse aléatoirement. Les faire combattre jusqu’à ce qu’un des deux soit KO.

4. Bonus

Vous pouvez par exemple ajouter plus de types, ainsi que des attaques spéciales selon les types de monstres.

Toute autre idée d'amélioration du jeu sera bienvenue, mais uniquement quand tout le reste fonctionne déjà !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment