From ab878b2436408af25a5d146aa328984e17c6e15b Mon Sep 17 00:00:00 2001 From: DA SILVA Ethan Date: Wed, 27 Sep 2023 11:22:46 +0200 Subject: [PATCH] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20'jdr.py'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jdr.py | 97 ++++++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 78 insertions(+), 19 deletions(-) diff --git a/jdr.py b/jdr.py index ddebbbc..2270070 100644 --- a/jdr.py +++ b/jdr.py @@ -1,26 +1,85 @@ -from math import sqrt + +from random import* class Personnage: - def __init__(self,nom,pdv,exp,cat,inventaire): + def __init__(self, nom, cat): self.nom = nom - self.pdv = 0 - self.exp = 1 self.cat = cat - self.coef = 0 + self.pdv = 20 + self.exp = 1 self.inventaire = [] if self.cat == "Chevalier": - self.inventaire == ["Grand bouclier", " Epée "] - self.pdv == 35 - self.coef == 5 - elif self.cat == "Mage": - self.inventaire == ["Spectre ", " Potion de soin "] - self.pdv == 20 - self.coef == 2 + self.inventaire = ["Epée", "Potion de degat"] + self.coefAtk = 8 + self.coefDef = 7 elif self.cat == "Archer": - self.inventaire == ["Arc", " Flèches"] - self.pdv == 20 - self.coef == 3 - elif self.cat == "Cavalier": - self.inventaire == ["Lance", " Bouclier"] - self.pdv == 45 - self.coef == 6 + self.inventaire = ["Arc en bois", "Potion de vitesse"] + self.coefAtk = 7 + self.coefDef = 4 + elif self.cat == "Mage": + self.inventaire = ["Spectre", "Grimoire"] + self.coefAtk = 5 + self.coefDef = 8 + elif self.cat == "Assasin": + self.inventaire = ["Dagues", "Potion de camouflage"] + self.coefAtk = 9 + self.coefDef = 5 + + def jet_attaque(self): + """renvoie jet d'attaque""" + atkPoints = randint(1, 20) + return atkPoints + self.exp*self.coefAtk*0.1 + + def jet_defense(self): + """renvoie jet de défense""" + defPoints = randint(1, 20) + return defPoints + self.exp*self.coefDef*0.1 + + def change_pdv(self, nb_pdv): + """change le nombre de pdv""" + self.pdv = self.pdv + nb_pdv + + def change_exp(self, nb_exp): + """change le nombre d'exp""" + self.exp = self.exp + nb_exp + + def affiche_caracteristiques(self): + """affiche les caractéristiques du personnage (nom, catégorie, pdv, exp)""" + print("Nom :", self.nom) + print("Catégorie :", self.cat) + print("Points de vie :", self.pdv) + print("Points d'expérience:", self.exp) + + def affiche_inventaire(self): + """affiche le contenu de l'inventaire du personnage""" + print("L'inventaire de", self.nom, ":",self.inventaire) + +def combat(Perso1, Perso2): + """Lance un combat jusqu'à ce qu'un personnage n'a plus de points de vie puis donne un point d'expérience au vainqueur""" + roleAtk = Perso1 + roleDef = Perso2 + while Perso1.nombre_pdv() > 0 and Perso2.nombre_pdv() > 0: + if roleAtk.jet_attaque() > roleDef.jet_defense(): + roleDef.change_pdv(-randint(1, 8)) + elif roleAtk.jet_attaque() < roleDef.jet_defense(): + roleAtk.change_pdv(-randint(1, 4)) + elif roleAtk.jet_attaque() == roleDef.jet_defense(): + roleAtk.change_pdv() + roleDef.change_pdv() + Perso1.affiche_caracteristiques() + Perso2.affiche_caracteristiques() + roleAtk, roleDef = roleDef, roleAtk + if Perso1.nombre_pdv() > 0: + print(Perso2.affiche_nom(), "a perdu, le vainqueur est ",Perso1.affiche_nom(), "qui remporte un point d'expérience !") + Perso1.change_exp(1) + elif Perso2.nombre_pdv() > 0: + print(Perso1.affiche_nom(), "a perdu, le vainqueur est ",Perso2.affiche_nom(), "qui remporte un point d'expérience !") + Perso2.change_exp(1) + elif Perso1.nombre_pdv() < 0 and Perso2.nombre_pdv() < 0: + print("Le jet d'attaque est trop faible pour infliger assez de dégats pour gagner le combat et le jet de défense est trop résistant", Perso1.affiche_nom(), "et", Perso2.affiche_nom(), "ont pas pris de dégats conséquents ! egalité donc recommencer le combat") + Perso1.regen_pdv() + Perso2.regen_pdv() + +Arkunir = Personnage("Arkunir", "Mage") +Elon Musk = Personnage("Elon Musk", "Archer") +