Browse Source

JDR SQL

cadeau pour nico
master
DELPUI Loïc 10 months ago
parent
commit
13ec91d278
  1. 154
      jdr sql.py

154
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")
Loading…
Cancel
Save