TP4: jeu de rôle (POO)

Contenu

TP4: jeu de rôle (POO)🔗

Dans ce T.P., vous coderez un jeu vidéo textuel simulant une bataille entre deux joueurs, à travers leur personnage respectif.

Personnages🔗

Il faudra créer une classe Personnage comportant les attributs et méthodes communs à tous les personnages. Ensuite, pour chaque type de personnage, vous utiliserez l'héritage depuis la classe Personnage pour créer leur classe spécifique. Vous êtes libres du choix des différents personnages (guerrier/archer, abeille/papillon, Link/Mario/Pikachu, etc.), mais ferez au moins deux classes différentes.

Les personnages ont chacun des attributs:

  • nom : à choisir par le joueur en début de partie,

  • point de vie (PV) : tout le monde commence à 500 PV,

  • attaque (ATT) : entier entre 0 (aucune attaque), et 100 (attaque maximale),

  • défense (DEF) : entier entre 0 (défense nulle), et 100 (défense totale, aucune attaque ne peut enlever de PV),

  • agilité (AGI) : entier entre 0 (agilité nulle) et 100.

Les différences entre les différents personnages résideront dans leur point d'attaque et de défense, ainsi que dans leur type d'attaque. Essayez de ne pas créer des personnages trop déséquilibrés dans leurs statistiques.

Jeu🔗

La progression du jeu sera gérée par une classe Jeu.

Initialisation du jeu

Au début du jeu, les joueurs choisissent le type de personnage qu'ils souhaitent incarner, et leur nom.

Combat

Les personnages se battent l'un après l'autre. Celui qui commence est choisi de manière aléatoire. Pour chaque action, le joueur aura le choix entre attaquer (a) et fuir (f), et donnera son choix dans la console. Ces différentes actions doivent faire partie de la classe Personnage.

Lorsqu'un personnage en attaque un autre, la cible perd alors de la vie en proportion de sa valeur de défense et de la valeur d'attaque de l'assaillant : vie ennemie -= point d'attaque - point défense/5. Cependant, il y a également une chance que l'adversaire esquive le coup donné qui dépend de l'agilité de celui-ci : la probabilité d'une esquive de l'ennemie est Agilité de l'ennemi/100/4, soit égale à 25% du score d'agilité.

Si le personnage choisit de fuir, la probabilité de succès de cette fuite dépendra de son score d'agilité : si le score est de 40, il y aura 20% de succès, soit deux fois moins que le score.

À chaque étape du combat, les PV restant de chaque combattant seront affichés.

Fin du jeu

Le jeu se termine lorsque l'un des personnages est mort, c-à-d. lorsque ses PV sont à 0, ou s'est enfuit.

Pour aller plus loin :

  • On pourra créer une ou plusieurs attaques spéciales, qui infligeraient de nombreux dégâts, mais avec une probabilité de réussite assez faible.

  • Vous pouvez ajouter des possibilités de se soigner, de contrer, etc.