diff --git a/base_de_donnee.py b/base_de_donnee.py index 5749c4f..5ec3853 100644 --- a/base_de_donnee.py +++ b/base_de_donnee.py @@ -1,28 +1,51 @@ import sqlite3 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.con = sqlite3.connect("jdr_base.db") 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.close() def __str__(self): - self.con = sqlite3.connect("jdr_base.db") - self.cur = self.con.cursor() - + """pour pouvoir débuguer""" 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.close() - return str(res) - def ajouter_personnage(self): - pass + def change_exp_sql(self,nom, n): + """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 \ No newline at end of file diff --git a/jdr_base.db b/jdr_base.db index 15e0c92..894f35a 100644 Binary files a/jdr_base.db and b/jdr_base.db differ diff --git a/main.py b/main.py index 9950059..da9d561 100644 --- a/main.py +++ b/main.py @@ -2,6 +2,7 @@ from random import randint, choice from personnage import Personnage from interface import * +from base_de_donnee import * def combat(perso1, perso2): """simule un combat jusqu'à ce que les joueurs n'aient plus de vies""" @@ -52,7 +53,7 @@ def main(): else: (nomJoueur1, catJoueur1) = intro_courte() - + # 2v ne fonctionnent plus -- ajouter nom base joueur1 = Personnage(nomJoueur1, catJoueur1) joueur2 = Personnage("ennemi", choice(["guerrier","magicien","voleur","elfe"])) diff --git a/personnage.py b/personnage.py index b599713..5caee01 100644 --- a/personnage.py +++ b/personnage.py @@ -1,7 +1,12 @@ from random import randint +from base_de_donnee import * + class Personnage: - def __init__(self, nom, cat): + def __init__(self, nom_base, nom, cat): """initialise le personnage""" + ### à compléter !!! + nom_base.ajout_personnage(nom,cat,20,1, inventaire): + self.nom = nom self.pdv = 20 self.exp = 1