From eef30c83ac7fa9fc6c9daec723dc4dfc515baf78 Mon Sep 17 00:00:00 2001 From: "corentin.bollet" Date: Wed, 29 Nov 2023 14:57:51 +0100 Subject: [PATCH] sauvegarde --- __pycache__/base_de_donnee.cpython-38.pyc | Bin 0 -> 3006 bytes __pycache__/interface.cpython-38.pyc | Bin 4695 -> 5071 bytes __pycache__/personnage.cpython-38.pyc | Bin 2227 -> 2268 bytes base_de_donnee.py | 27 +++++++++++++--------- interface.py | 8 +++++++ jdr_base.db | Bin 20480 -> 20480 bytes main.py | 10 ++++++-- personnage.py | 3 ++- 8 files changed, 34 insertions(+), 14 deletions(-) create mode 100644 __pycache__/base_de_donnee.cpython-38.pyc diff --git a/__pycache__/base_de_donnee.cpython-38.pyc b/__pycache__/base_de_donnee.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..afa0c10c59073b2355d195993b84ef98e0c8e61d GIT binary patch literal 3006 zcmc&$-BQ~|6xK@e55^Ee)6o1i+jKg?DFK?~s*{jFa1-+5WNb(q&vZ0GyAUO^WL6TB zddy9dK0sff1D8ApPf^|WDzA{Men+-3HZ;BLg3g}Ro?V?i`>e>TM=)(A*3FEz9XM)wVlKBzyTE!uGv>mR0gtt! zs~cic7{dI(>ZZtu><6u$5jl}ZpA{pbfIcTiMG<{ojEQmdBjS{pKwl82@x3pS;*uT8 zWw{*qzLfDSws$-`3?**{vEstDygDR;;%!+^?1wSIc~Lap_5!ul&R-&sKT) zmzCOTjkg>=?FSA1VzGMv;bL|A)_jRSudX~@tiI%r%P(gfJCd7$a^+ErnWot0E0xvq zgK~97zHJ`ruD>n)$aYoV{KkB#R4L^X17AsU;g;t{@@75f&|NxFVnC^9omho|!XQ>j zPQH~+9LXf>1dWCpm5js;rMIEz&gz+sKsj<>Q-tMDi*pT$>z{K1h3~rl?0SHRM00Dk zCBD2;dpt*Bz&Ga}Emv>M-?%wPA+ZGhQz*?ge@pU~MOS87S!@`l8DeJjA}i`=S?kNA zz?1zxKBfH2H^g7{W*Vxl`SY)=@d&(X?J`1B1xDeZc3jiPNug3)7 z)_AS_q1qUT>xPnH8jy|{CCi*; z!NRg8F$l>)jSh5X=s>B-zj#-Vi1lcK!i|F?Jvm%BIkuOP3$y9`W|jN=8N zEV0zr6WkQiv#cpthV)%cKjvg=;7}xb4fLha-l>xc%85Zo!V-10v&-6hwv$DQXWwMi zd}O|3Z6?e&rdo(H@0dT28NF?^&30xZvyvxCpy?yZWy^+u?+c-9IH8!WQK<}<}sP(-Aq6A zJM-&Et}e+CyEFqA1OR0lIVz!DMMBcX(syKQq6;WW@f1=6ciqEo4F?I&Kx`tAzZQ2W zJlZ+!4}FVxjivONUR+5}^x65ul%SpAn=IT0=|#xd<^rev2yg6hZ@7eWTav@WLYUN zO5ug=#T`8bqax&B8Kq5!P(}_JE-^rBiGlDXg+7thN60N{5q)L1X}4pkHZgpr3)nrR z#M8{PY@Fqpi6^U%v#(g|(r2S_tVkWA{2F!}M7aPufm^nrchQ-aD-In`)5E_P#h&u@Wlv{hgOx2=wp4ZB&95K0r=li?-=ZEELnU>$VTiG9G zrhatyjec|!<`2VU9Q5UHN(*}uGt;rU^mLK6E(`=`(DMHX4dv1-?}bKPg0tPQVB!v* zp|B__0O~Rcsw5qe(sA$DSd$hc%>Ku*yOvH$iZG`}IdxcU<}o+{5p09)=~Q%taZcOO z+xo64%ssYavAYza7qGfHxw%46O-4uaiS*nQds8b|PlekFY8xmJYd`F`1 vY^u>ks~)F@6BtqE7mE2z-prqZ%%roZi*$#ne$p06{&vT=1==euih2DXLOJWV literal 0 HcmV?d00001 diff --git a/__pycache__/interface.cpython-38.pyc b/__pycache__/interface.cpython-38.pyc index f80149f4f11ea00f283aa654001816e372d9cef0..665bfed77c1f826ee58721be9de0fd569203f5cd 100644 GIT binary patch delta 696 zcmZ9K&ubG=5XaxVeMw%n*)-dxB$_rqY;9Rg!PW+$R1rl%kRlW>?V*IeO-<=G@^({7 znp&`)JQ?;N-W2gJapDIS@sz$)OT*Y#%YvkAo01LQ^zo8id`@~yLIh8m@ zZL%|2Z#0@)kKOXF>zDVN2!+1WYP)Uiw=Gms*toXf{doPpuyNHZ|IA`W1LCxH{jAn8 z%V*X}9WJjd)s7CAZz5NnSY$j=`;p<*4|E*6qj+PxrM-F(8G9|y5mDmLkqf7b#q|+v z*c@ih2a7sE8U~OwYGn8bo7j-Ygil$>3h&(4M`_Pe{!{+1-@d5l&aGZI15b2a@iI!Ukz6ND+k fETKvmD4!2YW0ecE+s`0Uh7>X(rA*2P(w5>koyLsA delta 341 zcmYMuF-yZh6ae77%bC6goAgZ57_Ai{RDyz2H$_JUDS|jUNrnz>;Zhu&`~fcEg#Lie zx@7c6I9l^-d@mim<38Sd_qcc8$3Lm}(CN4qt={@EzY9yR57*_%jl8!qRla_Ktj<9J zU^NyahsuH|Af&9$IRw;9Dm%z#Om=F>xS79{2~z!<1jc*M4i L5?kovEh?0M72q}L diff --git a/__pycache__/personnage.cpython-38.pyc b/__pycache__/personnage.cpython-38.pyc index 91f69c1ece748ff8292a1e6c8804a9f12567ebcb..a71ffdeaa8053c966f4d69006a91941a56ad1247 100644 GIT binary patch delta 755 zcmZ`%%W4!s6s_tv$#l$^C?@71YJ%-1B;Z02@dbj2Aev1tY&uglX0)d!sqO?90}0U| zh_%mtT)6QQT>Aq}#C3z8pyE9}8e`C^u2ZM_-g|D{s`}78Y=*00IKrrX{U+u6{c!g7 zA}s_HJY!uRa}I80)>C$$30pXCm~dWOu`S#uEb=NuM!fWOszgT>METYIXPe6o48Iz< zOXDt$`~gAV>a&D05OM)-_3gL3ns-VkmsvXwRIi(?rMc7%^46ya224+yAN=8{2a&S` z%r&dl!8Fzy>J_S}Y(Rj2z6tG_JL8}bh`m;p<|H{ri-DylXe!_>J`VIG%|kdttQ>tI zizF?IbaP8inV0svdq-LH6ggBr{LcYuHVt+j@Gl`D+fwCnfrKKn=OjxZc}Bw>#GYD9 zHpKSHz>(H^s-8=jmd&`kyM$dIkCCr7{ue{0YZNnQKD&pDM+c~pbyz&Fi$5N2zIe0z zy7}%MtXza!6L1M|qM*}hyWMH6%cP^Wr7F^nmbc6&|M3oPM9%=`0P}zgfXjddz#pla z;iUENr;($+fCm#ngStcAuWgSar}Xf)dR=XiOF4#TkqG*FN=aEek@A(l^y^CuZghKM OE0Z@7mm^Vw2i8xQHI+U9 delta 769 zcmZ{i&ui2`6vt;K*(7u~_Q!VDsM@cnL^|nb|g)O}B5Rt%rpw z_0VgXd+&=!{{;UD2|aqr-9Nzh(pqJy3Hi+Iy!ZX)?Rz$Rp0#GbV*}zA)(=iAYHIHS0AhQuKJ~LsH1BFee{&A2@V&anZhk&r^K# zbHtdBS&XJgE(KDIg$;StaY|RKd;m>Mf@_EggSPF67ftfeT?7+07pI5h2QH$bdMgT7 z0iAh>i3b9gXjUI&Cf!yLr+K2af?3KS-^jZ-2`OE`0xpJ3*>g&dzQLVgJ^%Xf3a2hBgN@;i O+{@JyPJU$C;=chXPnLH8 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 894f35a3162bbccf5a6477bf30017eaa18f8dd88..bae901b61c745f3b301f3af5f4c52fc07e77b475 100644 GIT binary patch literal 20480 zcmeI&J#W)M7zgmPoj5NjepsRkp(Iyzps7OSI1VpDK-0*Aih>|SpbS-H64P30<1}@m ziY*_45g|SR-++ac1xA<<3qxlHM(jdT$3vSg49(xtlic~9yYu~=)=(WxG4Hx~^&WkJB|ZpT8o?3%Ak&v%4MZV1IAN+uOIyf$JRATmD6~ zO8%$6kB|FTpYkH9R2coBkMxd4WYQ{SmG8=1?<5WgKmY;|fB*y_009U<00I!0Z-MP( zY*e}|2$$57R@N)muHU$MO6ip5<6)dvR^Q&*URmkwIi2?KPC{;-X`)d7+i`jGEd4{> zc}!mNySJUbx7)V6npz2E3Am0Gh8 znf%BaZ=YcIVI&L)k-v2(<8xJSqj!P@q&~|jE9|@+mD4p00Izz U00bZa0SG_<0uX=z1m;-a569CE-~a#s delta 82 zcmZozz}T>Wae}m<6axbTD-bgSF$)m$Ow=*vmtxSfzsU>aF$gd)@Mmt!yUI7QO_Oo@ dW=4nq{1Ye4W@O&Xq40x$vw*_~2r+Sj0syOn6zBi| 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