from random import randint class Personnage: def __init__(self, nom, cat): self.nom = nom self.pdv = 20 self.exp = 1 self.cat = cat if self.cat == "guerrier": self.inventaire = ["épée", "potion"] elif self.cat == "magicien": self.inventaire = ["bâton", "potion"] elif self.cat == "voleur": self.inventaire = ["dague", "potion"] elif self.cat == "elfe": self.inventaire = ["arc", "potion"] def jet_attaque(self): de = randint(0, 20) if self.cat == "guerrier" or self.cat == "magicien": return de + self.exp*10 elif self.cat == "voleur": return de + self.exp*3 elif self.cat == "elfe": return de + self.exp*8 def jet_defense(self): de = randint(0, 20) if self.cat == "guerrier": return de + self.exp*8 elif self.cat == "magicien": return de + self.exp*7 elif self.cat == "voleur": return de + self.exp*9 elif self.cat == "elfe": return de + self.exp*10 def change_pdv(self, nb_pdv): self.pdv = self.pdv + nb_pdv def change_exp(self, nb_exp): self.exp = self.exp + nb_exp def affiche_caracteristiques(self): print("Nom :", self.nom, ", Catégorie :", self.cat, ", Points de vie :", self.pdv, ", Expérience :", self.exp) def affiche_inventaire(self): print( self.nom, "a dans son inventraire :", self.inventaire) print("quel est le nom du joueur 1?") joueur1 = input() print("Est-il un guerrier(1), un magicien(2), un voleur(3) ou un elfe(4)?") categorie_j1 = input(int()) if categorie_j1 == "1": cat_j1 = "guerrier" elif categorie_j1 == "2": cat_j1 = "magicien" elif categorie_j1 == "3": cat_j1 = "voleur" elif categorie_j1 == "4": cat_j1 = "elfe" print("quel est le nom du joueur 2?") joueur2 = input() print("Est-il un guerrier, un magicien, un voleur ou un elfe?") categorie_j2 = input(int()) if categorie_j2 == "1": cat_j2 = "guerrier" elif categorie_j2 == "2": cat_j2 = "magicien" elif categorie_j2 == "3": cat_j2 = "voleur" elif categorie_j2 == "4": cat_j2 = "elfe" attaquant = Personnage(joueur1, cat_j1) defenseur =Personnage(joueur2, cat_j2) def combat(attaquant, defenseur): attaque = attaquant.jet_attaque() defense = defenseur.jet_defense() if attaque > defense : defenseur.change_pdv(-randint(1,8)) else : attaquant.change_pdv(-randint(1,4)) attaquant.affiche_caracteristiques() defenseur.affiche_caracteristiques() x = "1" while x == "1": if attaquant.exp - defenseur.exp > 5 : attaquant.affiche_invzntaire while defenseur.pdv > 0 and attaquant.pdv > 0: combat(attaquant, defenseur) attaquant, defenseur = defenseur, attaquant if attaquant.pdv > defenseur.pdv : attaquant.change_exp(1) else : defenseur.change_exp(1) attaquant.affiche_caracteristiques() defenseur.affiche_caracteristiques() attaquant.pdv = 20 defenseur.pdv = 20 print("rejouer? oui(1)/ non(0)") x = input(int())