From 2199cf85abc1110f7c8ed5f21d329f5165268f97 Mon Sep 17 00:00:00 2001 From: OUEDRAGO Seyba Date: Mon, 22 Sep 2025 11:53:26 +0200 Subject: [PATCH] =?UTF-8?q?Transf=C3=A9rer=20les=20fichiers=20vers=20''?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le projet final :) --- JDR.py | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 69 insertions(+), 2 deletions(-) diff --git a/JDR.py b/JDR.py index 291c7a8..238868e 100644 --- a/JDR.py +++ b/JDR.py @@ -1,5 +1,7 @@ from random import randint +import time class Personnage: + #initialisation de la classe avec les attributs def __init__ (self, nom): self.nom = nom self.pdv = 20 @@ -8,6 +10,7 @@ class Personnage: self.inventaire = ["potion"] def menu(self): + #le menu pour choisir ca catégorie self.cat = int(input(""" 1: guerrier 2: magicien @@ -15,8 +18,17 @@ class Personnage: 4: elfe """)) + if self.cat == 1: + self.cat_affiche = "guerrier" + if self.cat == 2: + self.cat_affiche = "magicien" + if self.cat == 3: + self.cat_affiche = "voleur" + if self.cat == 4: + self.cat_affiche = "elfe" def jet_attaque(self): + #le jet de dé d'attaque lancer = randint(1, 20) if self.cat == 1 or self.cat == 2: damage = self.exp * 10 @@ -27,6 +39,7 @@ class Personnage: return lancer + damage def jet_defense(self): + #le jet de dé de défense lancer = randint(1, 20) if self.cat == 1: defense = self.exp * 8 @@ -39,20 +52,28 @@ class Personnage: return lancer + defense def change_pdv(self, nb_pdv): + #la méthode pour changee les points de vie self.pdv += nb_pdv def change_exp(self, nb_exp): + #la méthode pour changer l'expérience if nb_exp <= 0: raise ValueError("Le nombre doit être positif ou nul") self.exp += nb_exp def affiche_caracteristiques(self): + #la méthode qui affiche les caractéristiques print(""" vous vous appellez {} vous êtes un {} - vous avez {} point de vie et {} éxpérience""".format(self.nom, self.cat, self.pdv, self.exp)) + vous avez {} point de vie et {} éxpérience""".format(self.nom, self.cat_affiche, self.pdv, self.exp)) def affiche_inventaire(self): + #la méthode qui affiche l'inventaire + armes = ["épée", "bâton", "dague", "arc"] + for arme in armes: + if arme in self.inventaire: + self.inventaire.remove(arme) if self.cat == 1: self.inventaire.append("épée") print(self.inventaire) @@ -69,7 +90,53 @@ class Personnage: print("vous n'avez pas de catégorie") self.menu() +def combat(perso1, perso2): + #le combat chaque tout l'attaquant et le défenseur jettent un dé celui qui a le meilleur score inflige des dégats à son adversaire puis les rôles s'inversent jusqu'à la défaire de l'un + tour = 1 + attaquant, defenseur = perso1, perso2 + while perso1.pdv>0 and perso2.pdv>0: + print(" --- tour {} --- \n".format(tour)) + print("{} attaque".format(attaquant.nom)) + attaque = attaquant.jet_attaque() + defense = defenseur.jet_defense() + print("l'attaque est de {} et la défense est de {}\n".format(attaque, defense)) + if attaque > defense: + degats = randint(1, 8) + print("{} degats\n".format(degats)) + defenseur.change_pdv(-degats) + elif defense > attaque: + degats = randint(1, 4) + print("{} degats\n".format(degats)) + attaquant.change_pdv(-degats) + else: + degats = 0 + print("{} degats\n".format(degats)) + + if defenseur.pdv <= 0: + print("{} vaincu {} gagne\n".format(defenseur.nom, attaquant.nom)) + attaquant.change_exp(1) + print("{} gagne 1 xp\n".format(attaquant.nom)) + attaquant.affiche_caracteristiques() + break + if attaquant.pdv <= 0: + print("{} vaincu {} gagne".format(attaquant.nom, defenseur.nom)) + defenseur.change_exp(1) + print("{} gagne 1 xp".format(defenseur.nom)) + defenseur.affiche_caracteristiques() + break + + print("{} a {} point de vie et {} a {} point de vie\n".format(perso1.nom, perso1.pdv, perso2.nom, perso2.pdv)) + attaquant, defenseur = defenseur, attaquant + tour +=1 + input("appuyer sur Entrée pour continuer...\n") + + + +perso1 = Personnage("Jean") +perso1.menu() +perso2 = Personnage("Victor") +perso2.menu() -mon_personnage = Personnage("Seyba") +combat(perso1, perso2) \ No newline at end of file