@ -1,4 +1,5 @@
from random import *
import sqlite3
class Personnage :
def __init__ ( self , nom , cat ) :
self . nom = nom
@ -33,6 +34,14 @@ class Personnage:
defPoints = randint ( 1 , 20 )
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 ) :
""" modifie le nombre de points de vie """
self . pdv = self . pdv + nb_pdv
@ -53,6 +62,14 @@ class Personnage:
""" renvoie le nom du personnage """
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 ) :
""" affiche les caractéristiques du personnage (nom, catégorie, pdv, pts d ' exp) """
print ( " Nom : " , self . nom )
@ -65,25 +82,50 @@ class Personnage:
""" affiche le contenu de l ' inventaire du personnage """
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 ) :
""" 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
roleDef = Perso2
while Perso1 . nombre_pdv ( ) > 0 and Perso2 . nombre_pdv ( ) > 0 :
if roleAtk . jet_attaque ( ) > roleDef . jet_defense ( ) :
degats1 = - randint ( 1 , 8 )
roleDef . change_pdv ( degats1 )
print ( roleAtk . nom , " a infligé " , degats1 * - 1 , " de dégats à " , roleDef . nom )
roleDef . change_pdv ( - randint ( 1 , 8 ) )
elif roleAtk . jet_attaque ( ) < roleDef . jet_defense ( ) :
degats2 = - randint ( 1 , 4 )
roleAtk . change_pdv ( degats2 )
print ( roleDef . nom , " a infligé " , degats2 * - 1 , " de dégats à " , roleAtk . nom )
roleAtk . change_pdv ( - randint ( 1 , 4 ) )
elif roleAtk . jet_attaque ( ) == roleDef . jet_defense ( ) :
roleAtk . change_pdv ( - 9999999999 )
roleDef . change_pdv ( - 9999999999 )
Perso1 . affiche_caracteristiques ( )
Perso2 . affiche_caracteristiques ( )
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 :
print ( Perso2 . affiche_nom ( ) , " a succombé, la victoire revient à " , Perso1 . affiche_nom ( ) , " qui remporte un point d ' expérience ! " )
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! " )
Perso1 . 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 " )
>> >> >> > 7 cabaa14cab561789e3df22193b924c4b131dbfa
Squeezie = Personnage ( " Squeezie " , " Déesee " )
TiboInShape = Personnage ( " TiboInShape " , " Fée " )
# commande utile à copier :
# - combat(Squeezie, TiboInShape)