import random class Personnage: def __init__(self, nom, cat): self.nom = nom self.pdv = 20 self.exp = 1 self.cat = cat self.inventaire = [] def jet_attaque(self): coefficient = 10 # Coeff de base if self.cat == "guerrier": coefficient = 10 elif self.cat == "magicien": coefficient = 10 elif self.cat == "voleur": coefficient = 3 elif self.cat == "elfe": coefficient = 8 return random.randint(1, 20) + self.exp * coefficient def jet_defense(self): coefficient = 8 # Coeff de base if self.cat == "guerrier": coefficient = 8 elif self.cat == "magicien": coefficient = 7 elif self.cat == "voleur": coefficient = 9 elif self.cat == "elfe": coefficient = 10 return random.randint(1, 20) + self.exp * coefficient def change_pdv(self, ab_pdv): self.pdv += ab_pdv def change_exp(self, ab_exp): self.exp += ab_exp def affiche_caracteristiques(self): print(f"Nom: {self.nom}") print(f"Catégorie: {self.cat}") print(f"Points de vie: {self.pdv}") print(f"Expérience: {self.exp}") def affiche_inventaire(self): print(f"Inventaire de {self.nom}: {', '.join(self.inventaire)}") # Creation des personnage personnage1 = Personnage("kratos", "guerrier") personnage2 = Personnage("dumbeldore", "magicien") # Simu de combat while personnage1.pdv > 0 and personnage2.pdv > 0: attaquant = personnage1 if random.choice([True, False]) else personnage2 defenseur = personnage2 if attaquant == personnage1 else personnage1 attaque = attaquant.jet_attaque() defense = defenseur.jet_defense() if attaque > defense: dommages = random.randint(1, 8) defenseur.change_pdv(-dommages) print(f"{attaquant.nom} attaque {defenseur.nom} et inflige {dommages} points de dégâts.") else: dommages = random.randint(1, 4) attaquant.change_pdv(-dommages) print(f"{attaquant.nom} attaque {defenseur.nom}, mais {defenseur.nom} se défend et prend seulement {dommages} points de dégâts.") # Affiche caracteristique personnage1.affiche_caracteristiques() personnage2.affiche_caracteristiques() # Ajoute de l'exp au survivant a la fin du combat gagnant = personnage1 if personnage1.pdv > 0 else personnage2 gagnant.change_exp(1) print(f"{gagnant.nom} a gagné le combat et reçoit 1 point d'expérience.")