Browse Source

ajout base de donnée avec interaction au jeu de role

master
FORESTIER Alexi 1 year ago
parent
commit
4f1d0edabc
  1. 71
      jdr.py

71
jdr.py

@ -1,4 +1,5 @@
from random import* from random import*
import sqlite3
class Personnage: class Personnage:
def __init__(self, nom, cat): def __init__(self, nom, cat):
self.nom = nom self.nom = nom
@ -33,6 +34,14 @@ class Personnage:
defPoints = randint(1, 20) defPoints = randint(1, 20)
return defPoints + self.exp*self.coefDef*0.1 return defPoints + self.exp*self.coefDef*0.1
def affiche_coefatk(self):
"""renvoie le coef atk du personnage"""
return self.coefAtk
def affiche_coefdef(self):
"""renvoie le coef def du personnage"""
return self.coefDef
def change_pdv(self, nb_pdv): def change_pdv(self, nb_pdv):
"""modifie le nombre de points de vie""" """modifie le nombre de points de vie"""
self.pdv = self.pdv + nb_pdv self.pdv = self.pdv + nb_pdv
@ -53,6 +62,14 @@ class Personnage:
"""renvoie le nom du personnage""" """renvoie le nom du personnage"""
return self.nom return self.nom
def affiche_cat(self):
"""renvoie la catégorie du personnage"""
return self.cat
def affiche_xp(self):
"""renvoie l'xp du personnage"""
return self.exp
def affiche_caracteristiques(self): def affiche_caracteristiques(self):
"""affiche les caractéristiques du personnage (nom, catégorie, pdv, pts d'exp)""" """affiche les caractéristiques du personnage (nom, catégorie, pdv, pts d'exp)"""
print("Nom :", self.nom) print("Nom :", self.nom)
@ -65,25 +82,50 @@ class Personnage:
"""affiche le contenu de l'inventaire du personnage""" """affiche le contenu de l'inventaire du personnage"""
print("Contenu de l'inventaire de", self.nom, ":",self.inventaire) print("Contenu de l'inventaire de", self.nom, ":",self.inventaire)
def affiche_inventaireSQL(self):
"""affiche le contenu de l'inventaire du personnage (pour SQL)"""
return self.inventaire
def combat(Perso1, Perso2): def combat(Perso1, Perso2):
"""simule un combat jusqu'à ce qu'un personnage n'a plus de points de vie puis donne un point d'expérience au survivant""" """simule un combat jusqu'à ce qu'un personnage n'a plus de points de vie puis donne un point d'expérience au survivant"""
conn = sqlite3.connect("Personnage.db")
c = conn.cursor()
c.execute('''CREATE TABLE if not exists Personnage(nom VARCHAR(255), catégorie VARCHAR(255), pdv INT, xp INT, ObjetN°1 TEXT, ObjetN°2 TEXT, CoefAtk INT, CoefDef INT)''')
Per1 = (Perso1.affiche_nom(), Perso1.affiche_cat(), Perso1.nombre_pdv(), Perso1.affiche_xp(), Perso1.affiche_inventaireSQL()[0],Perso1.affiche_inventaireSQL()[1], Perso1.affiche_coefatk(), Perso1.affiche_coefdef(),)
c.execute("INSERT INTO Personnage VALUES (?, ?, ?, ?, ?, ?, ?, ?)", Per1)
Per2 = (Perso2.affiche_nom(), Perso2.affiche_cat(), Perso2.nombre_pdv(), Perso2.affiche_xp(), Perso2.affiche_inventaireSQL()[0],Perso2.affiche_inventaireSQL()[1], Perso2.affiche_coefatk(), Perso2.affiche_coefdef(),)
c.execute("INSERT INTO Personnage VALUES (?, ?, ?, ?, ?, ?, ?, ?)", Per2)
c.execute("SELECT * FROM Personnage")
print(c.fetchall())
conn.commit()
roleAtk = Perso1 roleAtk = Perso1
roleDef = Perso2 roleDef = Perso2
while Perso1.nombre_pdv() > 0 and Perso2.nombre_pdv() > 0: while Perso1.nombre_pdv() > 0 and Perso2.nombre_pdv() > 0:
if roleAtk.jet_attaque() > roleDef.jet_defense(): if roleAtk.jet_attaque() > roleDef.jet_defense():
degats1 = -randint(1, 8) roleDef.change_pdv(-randint(1, 8))
roleDef.change_pdv(degats1)
print(roleAtk.nom, "a infligé", degats1*-1, "de dégats à", roleDef.nom)
elif roleAtk.jet_attaque() < roleDef.jet_defense(): elif roleAtk.jet_attaque() < roleDef.jet_defense():
degats2 = -randint(1, 4) roleAtk.change_pdv(-randint(1, 4))
roleAtk.change_pdv(degats2)
print(roleDef.nom, "a infligé", degats2*-1, "de dégats à", roleAtk.nom)
elif roleAtk.jet_attaque() == roleDef.jet_defense(): elif roleAtk.jet_attaque() == roleDef.jet_defense():
roleAtk.change_pdv(-9999999999) roleAtk.change_pdv(-9999999999)
roleDef.change_pdv(-9999999999) roleDef.change_pdv(-9999999999)
Perso1.affiche_caracteristiques() Perso1.affiche_caracteristiques()
Perso2.affiche_caracteristiques() Perso2.affiche_caracteristiques()
roleAtk, roleDef = roleDef, roleAtk roleAtk, roleDef = roleDef, roleAtk
Per1 = (Perso1.affiche_nom(), Perso1.affiche_cat(), Perso1.nombre_pdv(), Perso1.affiche_xp(), Perso1.affiche_inventaireSQL()[0],Perso1.affiche_inventaireSQL()[1], Perso1.affiche_coefatk(), Perso1.affiche_coefdef(),)
c.execute("INSERT INTO Personnage VALUES (?, ?, ?, ?, ?, ?, ?, ?)", Per1)
Per2 = (Perso2.affiche_nom(), Perso2.affiche_cat(), Perso2.nombre_pdv(), Perso2.affiche_xp(), Perso2.affiche_inventaireSQL()[0],Perso2.affiche_inventaireSQL()[1], Perso2.affiche_coefatk(), Perso2.affiche_coefdef(),)
c.execute("INSERT INTO Personnage VALUES (?, ?, ?, ?, ?, ?, ?, ?)", Per2)
c.execute("SELECT * FROM Personnage")
print(c.fetchall())
conn.commit()
if Perso1.nombre_pdv() > 0: if Perso1.nombre_pdv() > 0:
print(Perso2.affiche_nom(), "a succombé, la victoire revient à ",Perso1.affiche_nom(), "qui remporte un point d'expérience !") print(Perso2.affiche_nom(), "a succombé, la victoire revient à ",Perso1.affiche_nom(), "qui remporte un point d'expérience !")
Perso1.change_exp(1) Perso1.change_exp(1)
@ -94,24 +136,19 @@ def combat(Perso1, Perso2):
print("Le jet d'attaque et le jet de défense fuent de force égale ce qui a provoqué par une raison inexpliquable, une onde de choc et a alarmé la Corée du Nord ! Pris de panique, Kim jong-un lance une bombe atomique sur votre position !", Perso1.affiche_nom(), "et", Perso2.affiche_nom(), "ont tous deux succombés ! Match nul mais allez jouer au Loto!") print("Le jet d'attaque et le jet de défense fuent de force égale ce qui a provoqué par une raison inexpliquable, une onde de choc et a alarmé la Corée du Nord ! Pris de panique, Kim jong-un lance une bombe atomique sur votre position !", Perso1.affiche_nom(), "et", Perso2.affiche_nom(), "ont tous deux succombés ! Match nul mais allez jouer au Loto!")
Perso1.regen_pdv() Perso1.regen_pdv()
Perso2.regen_pdv() Perso2.regen_pdv()
conn.close()
<<<<<<< HEAD
def commencer(nom1, nom2):
Classe1 = input("Bien, veuillez choisir la classe du premier combattant (Choix entre Démon ; Fée ; Déesee ; Géant)")
nom1 = Personnage(nom1, Classe1)
Classe2 = input("Bien, veuillez choisir la classe du second combattant (Choix entre Démon ; Fée ; Déesee ; Géant)")
nom2 = Personnage(nom2, Classe2)
combat(nom1, nom2)
=======
Squeezie = Personnage("Squeezie", "Déesee")
TiboInShape = Personnage("TiboInShape", "Fée")
>>>>>>> 7cabaa14cab561789e3df22193b924c4b131dbfa
Squeezie = Personnage("Squeezie", "Déesee")
TiboInShape = Personnage("TiboInShape", "Fée")
# commande utile à copier :
# - combat(Squeezie, TiboInShape)

Loading…
Cancel
Save