DELPUI Loïc
12 months ago
1 changed files with 154 additions and 0 deletions
@ -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…
Reference in new issue