from random import randint import random class Personnage: def __init__(self,nom,exp,cat,inventaire): self.nom=nom self.pdv=20 self.exp=exp self.cat=cat self.inventaire=inventaire def jet_attaque(self): de=randint(1,20) attack=self.exp*gamedata[1][gamedata[0].index(self.cat)] print("Vous lancez le dé icosaèdre",chr(10),"Le nombre obtenu est",de,"Celui-ci est amplifié par la grande puissance de",self.nom,self.cat,"qui ajoute de",attack) return attack+de def jet_defense(self): de=randint(1,20) defense=self.exp*gamedata[2][gamedata[0].index(self.cat)] print("Vous lancez le dé icosaèdre",chr(10),"Le nombre obtenu est",de,"Celui-ci est amplifié par la grande puissance de",self.nom,self.cat,"qui ajoute de",defense) return defense+de def change_pdv(self,status): loss=randint(1,status) self.pdv=self.pdv-loss print("Vous perdez",loss,"points de vie") def change_exp(self): self.exp+=1 def affiche_caracteristiques(self): print(self.nom,self.cat,chr(10),"Points de vie",self.pdv,"Expérience",self.exp) def affiche_inventaire(self): print("Voici votre inventaire") for item in self.inventaire: print(item) class Personnage2: def __init__(self,exp): self.nom2=random.choice(veryrandomizednames[0]) self.pdv2=20 self.exp2=exp self.cat2=random.choice(gamedata[0]) self.inventaire2=[gamedata[3][gamedata[0].index(self.cat2)]] def jet_attaque(self): de=randint(1,20) attack=self.exp2*gamedata[1][gamedata[0].index(self.cat2)] print(player2.nom2,player2.cat2,"lance le dé icosaèdre",chr(10),"Le nombre obtenu est",de,"Celui-ci est amplifié par la grande puissance de",self.nom2,self.cat2,"qui ajoute de",attack) return attack+de def jet_defense(self): de=randint(1,20) defense=self.exp2*gamedata[2][gamedata[0].index(self.cat2)] print(player2.nom2,player2.cat2,"lance le dé icosaèdre",chr(10),"Le nombre obtenu est",de,"Celui-ci est amplifié par la grande puissance de",self.nom2,self.cat2,"qui ajoute de",defense) return defense+de def change_pdv(self,status): loss=randint(1,status) self.pdv2=self.pdv2-loss print(player2.nom2,player2.cat2,"perd",loss,"points de vie") def affiche_caracteristiques(self): print(self.nom2,self.cat2,chr(10),"Points de vie",self.pdv2,"Expérience",self.exp2) def menu1(answer): if answer=="help": answer=5 try: answer=int(answer) except: print("Entrez une réponse valide") answer=0 if answer==5: print(helpprofile) back="invalid" elif int(answer)>0 and int(answer)<5: back=gamedata[0][answer-1] else : back="invalid" return back def interact(answer): if answer=="help": print("écrivez 'stats' pour afficher vos statistiques") print("écrivez 'stock' pour afficher votre inventaire") print("écrivez 'advers'pour avoir les statisiques de",player2.nom2,player2.cat2) print("écrivez 'heal' pour utiliser votre potion et gagner 3 points de vie") if answer=="stats": player.affiche_caracteristiques() if answer=="stock": player.affiche_inventaire() if answer=="advers": player2.affiche_caracteristiques() if answer=="heal" and player.inventaire.count("potion"): player.inventaire.remove("potion") player.pdv+=3 gamedata=[["Le Guerrier","Le Magicien","Le Voleur","L'Elfe"],[10,10,3,8],[8,7,9,10],["épée","baton","dague","arc"]] veryrandomizednames=[["Nico","Manu","Rod"],["Desforêts","Delay","Cargnelutti"]] exp=1 helpprofile="Encyclopédie :"+chr(10)+"Le Guerrier : --- Attaque 10 --- Défense 8 ---"+chr(10)+"Le Magicien : --- Attaque 10 --- Défense 7 ---"+chr(10)+"Le Voleur : --- Attaque 3 --- Défense 9 ---"+chr(10)+"L'Elfe : --- Attaque 8 --- Défense 10 ---" print("Bienvenue dans The Elder Scrolls VII") nom=input("Entrez votre nom : ") print("Choisissez votre catégorie :",chr(10),"1)Le Guerrier",chr(10),"2)Le Magicien",chr(10),"3)Le Voleur",chr(10),"4)L'Elfe",chr(10),"entrez 'help' pour avoir le profil de chaque catégorie") command=input("entrez un numéro (1 à 4) pour devenir membre de la catégorie correspondante : ") command=menu1(command) if command=="invalid": while command=="invalid": command=menu1(input()) cat=command inventaire=[gamedata[3][gamedata[0].index(cat)]] inventaire.append("potion") print("Bonjour",nom,cat) print("Entrez 'help' pour découvrir toutes vos fonctions") player=Personnage(nom,exp,cat,inventaire) while player.pdv>0: player2=Personnage2(exp) print("Voici",player2.nom2,player2.cat2) while player.pdv>0 and player2.pdv2>0: interact(input()) attack1=player.jet_attaque() defense2=player2.jet_defense() if attack1>defense2: print("Votre jet d'attaque est supérieur au jet de défense de l'adversaire (",attack1,"/",defense2,")") player2.change_pdv(8) else: print("Votre jet d'attaque est inférieur au jet de défense de l'adversaire (",attack1,"/",defense2,")") player.change_pdv(4) interact(input()) attack2=player2.jet_attaque() defense1=player.jet_defense() if attack2>defense1: print("Votre jet de défense est inférieur au jet d'attaque' de l'adversaire (",attack2,"/",defense1,")") player.change_pdv(8) else: print("Votre jet de défense est supérieur au jet d'attaque de l'adversaire (",attack2,"/",defense1,")") player2.change_pdv(4) if player2==0: print("Vous avez vaincu",player2.nom2,player2.cat2) print("Vous gagnez 1 point d'expérience et vos points de vie sont régénérés") player.pdv=20 player.exp+=1 ; exp+=1 print("Vous avez été vaincu par le Seigneur",veryrandomizednames[1][veryrandomizednames[0].index(player2.nom2)]) print("FIN DU JEU")