diff --git a/jdr.py b/jdr.py index 49b9fe0..b70e717 100644 --- a/jdr.py +++ b/jdr.py @@ -3,9 +3,8 @@ class Personnage: def __init__(self, nom, cat): self.nom = nom self.cat = cat - self.pdv = 100 + self.pdv = 20 self.exp = 1 - self.coef = 0 self.inventaire = [] if self.cat == "Géant": self.inventaire = ["3 Rochers géants", "Grosse potion"] @@ -25,17 +24,84 @@ class Personnage: self.coefDef = 9 def jet_attaque(self): + """renvoie jet d'attaque""" atkPoints = randint(1, 20) - return atkPoints + self.exp*self.coefAtk + 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 + return defPoints + self.exp*self.coefDef*0.1 def change_pdv(self, nb_pdv): + """modifie le nombre de points de vie""" self.pdv = self.pdv + nb_pdv + + def regen_pdv(self): + """régénère les points de vie des 2 personnages pour un nouveau combat""" + self.pdv = 20 + + def nombre_pdv(self): + """renvoie le nombre de points de vie d'un personnage""" + return self.pdv + + def change_exp(self, nb_exp): + """modifie le nombre d'expérience""" + self.exp = self.exp + nb_exp + + def affiche_nom(self): + """renvoie le nom du personnage""" + return self.nom + + def affiche_caracteristiques(self): + """affiche les caractéristiques du personnage (nom, catégorie, pdv, pts d'exp)""" + print("Nom :", self.nom) + print("Catégorie :", self.cat) + print("Points de vie :", self.pdv) + print("Points d'expérience:", self.exp) + print("") + + def affiche_inventaire(self): + """affiche le contenu de l'inventaire du personnage""" + print("Contenu de l'inventaire de", self.nom, ":",self.inventaire) + +def combat(Perso1, Perso2): + """simule un combat jusqu'à ce qu'un personnage n'a plus de points de vie puis donne un point d'expérience au survivant""" + 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(-9999999999) + roleDef.change_pdv(-9999999999) + Perso1.affiche_caracteristiques() + Perso2.affiche_caracteristiques() + roleAtk, roleDef = roleDef, roleAtk + if Perso1.nombre_pdv() > 0: + print(Perso2.affiche_nom(), "a succombé, la victoire revient à ",Perso1.affiche_nom(), "qui remporte un point d'expérience !") + Perso1.change_exp(1) + elif Perso2.nombre_pdv() > 0: + print(Perso1.affiche_nom(), "a succombé, la victoire revient à ",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 et le jet de défense fuent de force égale ce qui a provoqué par une raison inexpliquable, une onde de choc et a alarmé la Corée du Nord ! Pris de panique, King jong-un lance une bombe atomique sur votre position !", Perso1.affiche_nom(), "et", Perso2.affiche_nom(), "ont tous deux succombés ! Match nul mais allez jouer au Loto!") + Perso1.regen_pdv() + Perso2.regen_pdv() + + +Squeezie = Personnage("Squeezie", choice(["Déesee", "Démon", "Géant", "Fée"])) +TiboInShape = Personnage("TiboInShape", choice(["Déesee", "Démon", "Géant", "Fée"])) -PersoTEST = Personnage("Moi", "Fée") +# commande utile à copier : +# - combat(Squeezie, TiboInShape) + + + + +