Browse Source

fin rédaction classe BaseDeDonnee & autres miscellannées

master
corentin.bollet 10 months ago
parent
commit
c24203e481
  1. 47
      base_de_donnee.py
  2. BIN
      jdr_base.db
  3. 3
      main.py
  4. 7
      personnage.py

47
base_de_donnee.py

@ -1,28 +1,51 @@
import sqlite3 import sqlite3
class BaseDeDonnee: class BaseDeDonnee:
def __init__(self, nom): """classe pour dialoguer avec une base de donnée"""
def __init__(self, nom, force=0):
"""initialisation de la base de donnée
-- si pb malgré création nouvelle table
supprimer manuellemnt l'ancienne table"""
self.nom = nom self.nom = nom
self.con = sqlite3.connect("jdr_base.db") self.con = sqlite3.connect("jdr_base.db")
self.cur = self.con.cursor() self.cur = self.con.cursor()
self.cur.execute("CREATE TABLE IF NOT EXISTS "+self.nom+" (id INT PRIMARY KEY NOT NULL,nom VARCHAR(100),categorie VARCHAR(100),exp INT)") self.cur.execute("CREATE TABLE IF NOT EXISTS "+self.nom+" (id INTEGER PRIMARY KEY,nom VARCHAR(40),categorie VARCHAR(40),pdv INTEGER,exp INTEGER,inventaire VARCHAR(20))")
self.con.commit() self.con.commit()
self.con.close()
def __str__(self): def __str__(self):
self.con = sqlite3.connect("jdr_base.db") """pour pouvoir débuguer"""
self.cur = self.con.cursor()
res = self.cur.execute("SELECT * FROM "+self.nom).fetchall() res = self.cur.execute("SELECT * FROM "+self.nom).fetchall()
return str(res)
def __del__(self):
"""déconnection de la base de donnée"""
self.con.close()
def ajout_personnage(self,nom,categorie,pdv,exp, inventaire):
"""ajoute un personnage dans la base de donnée
- caractéristiques : son nom, sa catégorie,
son nombre initial de point de vie et d'expérience"""
values = (nom,categorie,pdv,exp,inventaire)
self.cur.execute("INSERT INTO "+self.nom+" VALUES(NULL,?,?,?,?,?)",values)
self.con.commit()
def change_pdv_sql(self,nom, n):
"""incrémente de n le nombre de point de vie du perso
-- on suppose que les joueurs n'auront pas le même nom"""
self.cur.execute("UPDATE "+self.nom+" SET pdv=pdv+? WHERE nom=?",(n,nom))
self.con.commit() self.con.commit()
self.con.close()
return str(res)
def ajouter_personnage(self): def change_exp_sql(self,nom, n):
pass """incrémente de n le nombre de point d'exp. du perso
-- on suppose que les joueurs n'auront pas le même nom"""
self.cur.execute("UPDATE "+self.nom+" SET exp=exp+? WHERE nom=?",(n,nom))
self.con.commit()
def affiche_inventaire(self,nom):
"""renvoie l'inventaire d'un perso
-- on suppose que les joueurs n'auront pas le même nom"""
inventaire_str = self.cur.execute("SELECT inventaire FROM "+self.nom+" WHERE nom=?",(nom,)).fetchone()[0]
inventaire_lst = inventaire_str.split(",")
return inventaire_lst

BIN
jdr_base.db

Binary file not shown.

3
main.py

@ -2,6 +2,7 @@
from random import randint, choice from random import randint, choice
from personnage import Personnage from personnage import Personnage
from interface import * from interface import *
from base_de_donnee import *
def combat(perso1, perso2): def combat(perso1, perso2):
"""simule un combat jusqu'à ce que les joueurs n'aient plus de vies""" """simule un combat jusqu'à ce que les joueurs n'aient plus de vies"""
@ -52,7 +53,7 @@ def main():
else: else:
(nomJoueur1, catJoueur1) = intro_courte() (nomJoueur1, catJoueur1) = intro_courte()
# 2v ne fonctionnent plus -- ajouter nom base
joueur1 = Personnage(nomJoueur1, catJoueur1) joueur1 = Personnage(nomJoueur1, catJoueur1)
joueur2 = Personnage("ennemi", choice(["guerrier","magicien","voleur","elfe"])) joueur2 = Personnage("ennemi", choice(["guerrier","magicien","voleur","elfe"]))

7
personnage.py

@ -1,7 +1,12 @@
from random import randint from random import randint
from base_de_donnee import *
class Personnage: class Personnage:
def __init__(self, nom, cat): def __init__(self, nom_base, nom, cat):
"""initialise le personnage""" """initialise le personnage"""
### à compléter !!!
nom_base.ajout_personnage(nom,cat,20,1, inventaire):
self.nom = nom self.nom = nom
self.pdv = 20 self.pdv = 20
self.exp = 1 self.exp = 1

Loading…
Cancel
Save