from random import randint import sqlite3 import os # A if os.path.exists("Types.db"): os.remove("Types.db") conn = sqlite3.connect("Types.db") c = conn.cursor() c.execute("CREATE TABLE types(categorie TEXT, attaque INT, defense INT, item TEXT)") c.execute("INSERT INTO types VALUES('Le Guerrier', 10, 8, 'Épée')") c.execute("INSERT INTO types VALUES('Le Magicien', 10, 7, 'Baton')") c.execute("INSERT INTO types VALUES('Le Voleur', 3, 9, 'Dague')") c.execute("INSERT INTO types VALUES('L Elfe', 8, 10, 'Arc')") conn.commit() conn.close() # A # B if os.path.exists("Personnages.db"): os.remove("Personnages.db") conn = sqlite3.connect("Personnages.db") c = conn.cursor() c.execute("CREATE TABLE personnage(nom TEXT, pdv INT, exp INT, cat TEXT, inventaire TEXT)") conn.commit() # B 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 c.execute("INSERT INTO personnage (nom, pdv, exp, cat, inventaire) VALUES (?, ?, ?, ?, ?)", (self.nom, self.pdv, self.exp, self.cat, ",".join(self.inventaire))) conn.commit() def jet_attaque(self): de=randint(1,20) attack=self.exp*gamedata[1][gamedata[0].index(self.cat)] print(self.nom,self.cat,"lance 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(self.nom,self.cat,"lance 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(self.nom,self.cat,"perd",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) 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.nom,player2.cat) 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: nom=random.choice(veryrandomizednames[0]) cat=random.choice(gamedata[0]) inventaire=[gamedata[3][gamedata[0].index(cat)]] player2=Personnage(nom,exp,cat,inventaire) print("Voici",player2.nom,player2.cat) while player.pdv>0 and player2.pdv>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) c.execute("UPDATE personnage SET pdv = ?, inventaire = ?, exp = ? WHERE nom = ?", (player.pdv, ",".join(player.inventaire), player.exp, player.nom)) c.execute("UPDATE personnage SET pdv = ?, inventaire = ?, exp = ? WHERE nom = ?", (player2.pdv, ",".join(player2.inventaire), player2.exp, player2.nom)) conn.commit() 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) c.execute("UPDATE personnage SET pdv = ?, inventaire = ?, exp = ? WHERE nom = ?", (player.pdv, ",".join(player.inventaire), player.exp, player.nom)) c.execute("UPDATE personnage SET pdv = ?, inventaire = ?, exp = ? WHERE nom = ?", (player2.pdv, ",".join(player2.inventaire), player2.exp, player2.nom)) conn.commit() if player2.pdv<=0: print("Vous avez vaincu",player2.nom,player2.cat) print("Vous gagnez 1 point d'expérience et vos points de vie sont régénérés") player.pdv=20 player.change_exp() exp+=1 c.execute("DELETE FROM personnage WHERE nom = ?", (player2.nom)) c.execute("UPDATE personnage SET pdv = ?, inventaire = ?, exp = ? WHERE nom = ?", (player.pdv, ",".join(player.inventaire), player.exp, player.nom)) conn.commit() print("Vous avez été vaincu par le Seigneur",veryrandomizednames[1][veryrandomizednames[0].index(player2.nom)]) print("FIN DU JEU")