import random class Personnage : def __init__ (self, nom, cat): self.nom = nom self.pdv = 20 self.exp = 1 self.cat = cat self.inventaire = self.init_inventaire() def init_inventaire(self) : if self.cat == "guerrier": return ["épée", "potion"] elif self.cat == "magicien": return ["bâton", "potion"] elif self.cat == "voleur": return ["dague", "potion"] elif self.cat == "elfe": return ["arc", "potion"] else: return [] def jet_attaque (self) : lancer = random.randint(1,20) if self.cat == "guerrier" : coef = self.exp * 10 if self.cat == "magicien" : coef = self.exp * 10 if self.cat == "voleur" : coef = self.exp * 3 if self.cat == "elfe" : coef = self.exp * 8 somme = coef + lancer return somme def jet_defense (self) : lancer = random.randint(1,20) if self.cat == "guerrier" : coef = self.exp * 8 if self.cat == "magicien" : coef = self.exp * 7 if self.cat == "voleur" : coef = self.exp * 9 if self.cat == "elfe" : coef = self.exp * 10 somme = coef + lancer return somme 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("Les points de vies de", self.nom, "sont à", self.pdv, ". Ses points d'expériences sont à", self.exp, ". Sa catégorie est", self.cat, ".") def affiche_inventaire(self) : print("Inventaire de", self.nom, ":", ", ".join(self.inventaire)) def affiche_pdv(self): print("<3 <3 <3 <3 Les points de vies de", self.nom, "sont à", self.pdv) def creer_personnage () : nom = input("Entrez le nom du personnage :") print("Choississez la classe parmi:") print("1 - Guerrier") print("2 - Magicien") print("3 - Voleur") print("4 - Elfe") choix = input("Selectionnez le numero de votre classe :") while choix not in ["1", "2", "3", "4"] : print("Choix invalide, entrez un numero entre 1 et 4") choix = input("Selectionnez le numero de votre classe :") if choix == "1": cat = "guerrier" elif choix == "2" : cat = "magicien" elif choix == "3" : cat = "voleur" elif choix == "4" : cat = "elfe" return Personnage(nom, cat) def combat (p1, p2) : print("< < < < < Début du combat > > > > >") p1.affiche_caracteristiques() p2.affiche_caracteristiques() attaquant = p1 defenseur = p2 while p1.pdv > 0 and p2.pdv > 0 : print() print("!!!", attaquant.nom, "attaque", defenseur.nom, "!!!") att = attaquant.jet_attaque() defe = defenseur.jet_defense() print(">>>>> Jet d'attaque de", attaquant.nom, ":", att) print() print("<<<<< Jet de défense de", defenseur.nom, ":", defe) if att > defe : degats = random.randint(1, 8) print(defenseur.nom, "est touché et perd", degats, "points de vies !") defenseur.change_pdv(-degats) p2.affiche_pdv() elif att < defe: degats = random.randint(1,4) print(attaquant.nom, "rate son coup, et perd", degats, "points de vies !") attaquant.change_pdv(-degats) p1.affiche_pdv() else : print(attaquant.nom, "trébuche sur un caillou, et", defenseur.nom, "se raille de lui..") p1.affiche_pdv() p2.affiche_pdv() if p1.pdv == 0 or p2.pdv == 0 : print() p1.affiche_caracteristiques() p2.affiche_caracteristiques() attaquant, defenseur = defenseur, attaquant print() print(" < < < < < Fin du combat > > > > >") if p1.pdv <= 0: print(p1.nom, "est mort des coups de", p2.nom, "!") print(p2.nom, "gagne 1 point d'expérience.") p2.change_exp(1) else: print(p2.nom, "est mort des coups de", p1.nom, "!") print(p1.nom, "gagne 1 point d'expérience.") p1.change_exp(1) print() p1.affiche_caracteristiques() p2.affiche_caracteristiques() p1 = creer_personnage() print("Joueur 1 :") p1.affiche_caracteristiques() p1.affiche_inventaire() p2 = creer_personnage() print("Joueur 2 :") p2.affiche_caracteristiques() p2.affiche_inventaire()