diff --git a/__pycache__/base_de_donnee.cpython-38.pyc b/__pycache__/base_de_donnee.cpython-38.pyc new file mode 100644 index 0000000..afa0c10 Binary files /dev/null and b/__pycache__/base_de_donnee.cpython-38.pyc differ diff --git a/__pycache__/interface.cpython-38.pyc b/__pycache__/interface.cpython-38.pyc index f80149f..665bfed 100644 Binary files a/__pycache__/interface.cpython-38.pyc and b/__pycache__/interface.cpython-38.pyc differ diff --git a/__pycache__/personnage.cpython-38.pyc b/__pycache__/personnage.cpython-38.pyc index 91f69c1..a71ffde 100644 Binary files a/__pycache__/personnage.cpython-38.pyc and b/__pycache__/personnage.cpython-38.pyc differ diff --git a/base_de_donnee.py b/base_de_donnee.py index 5ec3853..c7ada7d 100644 --- a/base_de_donnee.py +++ b/base_de_donnee.py @@ -1,3 +1,4 @@ +# coding=utf-8 import sqlite3 class BaseDeDonnee: @@ -11,7 +12,7 @@ class BaseDeDonnee: self.con = sqlite3.connect("jdr_base.db") self.cur = self.con.cursor() - 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.cur.execute("CREATE TABLE IF NOT EXISTS "+self.nom+" (nom VARCHAR(40) PRIMARY KEY,categorie VARCHAR(40),pdv INTEGER,exp INTEGER,inventaire VARCHAR(20))") self.con.commit() def __str__(self): @@ -27,25 +28,29 @@ class BaseDeDonnee: """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() - + liste_nom = self.cur.execute("SELECT nom FROM "+self.nom).fetchall() + liste_nom = [elem[0] for elem in liste_nom] + if nom in liste_nom: + raise NameError + if nom > 40: + raise ValueError + else: + values = (nom,categorie,pdv,exp,inventaire) + self.cur.execute("INSERT INTO "+self.nom+" VALUES(?,?,?,?,?)",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""" + """incrémente de n le nombre de point de vie du perso""" self.cur.execute("UPDATE "+self.nom+" SET pdv=pdv+? WHERE nom=?",(n,nom)) self.con.commit() 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""" + """incrémente de n le nombre de point d'exp. du perso""" 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""" + """renvoie l'inventaire d'un perso""" 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/interface.py b/interface.py index d4c09d6..d51a937 100644 --- a/interface.py +++ b/interface.py @@ -1,3 +1,4 @@ +# coding=utf-8 from time import sleep #======fonctions utiles====== @@ -20,6 +21,13 @@ def message_avec_suite(msg): input("\n\n[Entrée]") cls() +def affiche_pdv(joueur1, joueur2): + """affiche les vies des joueurs""" + pdv_joueur1 = joueur1.pdv*"\033[31m♥\033[0m "+(20-max(0,joueur1.pdv))*"\033[37m♥\033[0m " + pdv_joueur2 = joueur2.pdv*"\033[31m♥\033[0m "+(20-max(0,joueur2.pdv))*"\033[37m♥\033[0m " + + print(pdv_joueur1 + " "*10 + pdv_joueur2) + print("{:<45}{:>45}".format(joueur1.nom, joueur2.nom)) #===========Intros=========== def intro_longue(): diff --git a/jdr_base.db b/jdr_base.db index 894f35a..bae901b 100644 Binary files a/jdr_base.db and b/jdr_base.db differ diff --git a/main.py b/main.py index da9d561..83ca65a 100644 --- a/main.py +++ b/main.py @@ -36,6 +36,12 @@ def combat(perso1, perso2): else: color = 39 print("(\033["+str(color)+"m"+str(diff)+"\033[0m points)\n") + + ###test affichage pdv + affiche_pdv(perso1,perso2) + ###fin test + + input("[Entrée]") attaquant, defenseur = defenseur , attaquant @@ -54,8 +60,8 @@ def main(): (nomJoueur1, catJoueur1) = intro_courte() # 2v ne fonctionnent plus -- ajouter nom base - joueur1 = Personnage(nomJoueur1, catJoueur1) - joueur2 = Personnage("ennemi", choice(["guerrier","magicien","voleur","elfe"])) + joueur1 = Personnage("base",nomJoueur1, catJoueur1) + joueur2 = Personnage("base","ennemi très méchant", choice(["guerrier","magicien","voleur","elfe"])) #le combat ! combat(joueur1, joueur2) diff --git a/personnage.py b/personnage.py index 5caee01..6a58f2b 100644 --- a/personnage.py +++ b/personnage.py @@ -1,3 +1,4 @@ +# coding=utf-8 from random import randint from base_de_donnee import * @@ -5,7 +6,7 @@ class Personnage: def __init__(self, nom_base, nom, cat): """initialise le personnage""" ### à compléter !!! - nom_base.ajout_personnage(nom,cat,20,1, inventaire): + #nom_base.ajout_personnage(nom,cat,20,1, inventaire) self.nom = nom self.pdv = 20