From 13ec91d2783bb70f79344c1a38fdfab2b96be612 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?DELPUI=20Lo=C3=AFc?= Date: Wed, 6 Dec 2023 11:34:03 +0100 Subject: [PATCH] JDR SQL cadeau pour nico --- jdr sql.py | 154 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 154 insertions(+) create mode 100644 jdr sql.py diff --git a/jdr sql.py b/jdr sql.py new file mode 100644 index 0000000..b699451 --- /dev/null +++ b/jdr sql.py @@ -0,0 +1,154 @@ +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") \ No newline at end of file