TP : Gestion dynamique des attributs d’un personnage de jeu en Java
Objectifs pédagogiques
Ce TP a pour but d’introduire les notions de :
- Création et instanciation de classes Java
- Héritage entre classes
- Composition d’objets (un objet contient d’autres objets)
- Manipulation de listes (
ArrayList)
Contexte
On souhaite concevoir un petit programme de gestion de personnages pour un jeu vidéo.
Chaque personnage possède plusieurs attributs, mais leur nombre et leur nature peuvent varier selon le type de personnage.
L’objectif est d’apprendre à gérer ces attributs de manière dynamique, à l’aide d’une classe dédiée et de listes.
Étape 1 - Classe Attribute
Créer une classe Attribute qui représente un attribut individuel d’un personnage.
Spécifications :
- Deux attributs privés :
name(nom de l’attribut)value(valeur associée)
- Un constructeur pour initialiser ces deux champs
- Des getters pour accéder à leurs valeurs
- Une méthode
show()affichant le nom et la valeur de l’attribut
Exemple de résultat attendu :
race : humaine
niveau : 5
métier : archère
Étape 2 - Classe Character
Créer une classe Character représentant un personnage.
Spécifications :
- Un attribut
name(chaîne de caractères) - Une liste
ArrayList<Attribute>pour stocker les attributs du personnage - Une méthode
addAttribute(Attribute a)pour ajouter un attribut à la liste - Une méthode
showInfo()qui affiche :- le nom du personnage
- la liste complète de ses attributs
Exemple de sortie attendue :
Nom du personnage : Aria
Attributs :
- race : humaine
- métier : archère
- niveau : 5
Étape 3 - Classe Hero (héritage)
Créer une classe Hero qui hérite de Character.
Spécifications :
- Un attribut supplémentaire
teamName(chaîne de caractères) - Un constructeur appelant la classe mère (
super(name)) - Possibilité d’ajouter des attributs via
addAttribute() - Redéfinir
showInfo()pour afficher le type du personnage
Exemple de sortie attendue :
Type : Héros
Nom du personnage : Aria
Équipe : Légion du Nord
Attributs :
- métier : archère
- niveau : 5
- énergie : 120
Étape 4 - Classe Monster (héritage)
Créer une classe Monster qui hérite également de Character.
Spécifications :
- Un attribut
species(chaîne de caractères) - Un constructeur appelant celui de la classe mère
- Redéfinir la méthode
showInfo()pour afficher "Type : Monstre"
Exemple de sortie attendue :
Type : Monstre
Nom du personnage : Goblin
Espèce : Gobelin des cavernes
Attributs :
- taille : petite
- dangerosité : 2
- habitat : grotte
Étape 5 - Manipulation de plusieurs personnages
Créer une classe TPRpgAttribute contenant une méthode main().
Spécifications :
- Créer plusieurs personnages (
HeroetMonster) - Ajouter des objets
Attributeà chacun d’eux viaaddAttribute() - Stocker tous les personnages dans une
ArrayList<Character> - Parcourir cette liste et afficher les informations de chaque personnage via
showInfo()
Exemple de sortie attendue :
Liste des personnages enregistrés
Type : Héros
Nom du personnage : Aria
Équipe : Légion du Nord
Attributs :
- métier : archère
- niveau : 5
- énergie : 120
Type : Monstre
Nom du personnage : Goblin
Espèce : Gobelin des cavernes
Attributs :
- taille : petite
- dangerosité : 2
- habitat : grotte
Étape 6 - Pour aller plus loin (facultatif)
- Ajouter une méthode pour modifier ou supprimer un attribut
- Trier la liste des personnages selon un critère (nom, type, etc.)
- Compter le nombre de héros et de monstres dans la liste
Compétences travaillées
- Création et utilisation de classes Java
- Héritage et polymorphisme
- Composition d’objets
- Utilisation des listes (
ArrayList) - Parcours et affichage de données en console