@ -3,9 +3,8 @@ class Personnage:
def __init__ ( self , nom , cat ) :
self . nom = nom
self . cat = cat
self . pdv = 10 0
self . pdv = 2 0
self . exp = 1
self . coef = 0
self . inventaire = [ ]
if self . cat == " Géant " :
self . inventaire = [ " 3 Rochers géants " , " Grosse potion " ]
@ -25,17 +24,84 @@ class Personnage:
self . coefDef = 9
def jet_attaque ( self ) :
""" renvoie jet d ' attaque """
atkPoints = randint ( 1 , 20 )
return atkPoints + self . exp * self . coefAtk
return atkPoints + self . exp * self . coefAtk * 0.1
def jet_defense ( self ) :
""" renvoie jet de défense """
defPoints = randint ( 1 , 20 )
return defPoints + self . exp * self . coefDef
return defPoints + self . exp * self . coefDef * 0.1
def change_pdv ( self , nb_pdv ) :
""" modifie le nombre de points de vie """
self . pdv = self . pdv + nb_pdv
def regen_pdv ( self ) :
""" régénère les points de vie des 2 personnages pour un nouveau combat """
self . pdv = 20
def nombre_pdv ( self ) :
""" renvoie le nombre de points de vie d ' un personnage """
return self . pdv
def change_exp ( self , nb_exp ) :
""" modifie le nombre d ' expérience """
self . exp = self . exp + nb_exp
def affiche_nom ( self ) :
""" renvoie le nom du personnage """
return self . nom
def affiche_caracteristiques ( self ) :
""" affiche les caractéristiques du personnage (nom, catégorie, pdv, pts d ' exp) """
print ( " Nom : " , self . nom )
print ( " Catégorie : " , self . cat )
print ( " Points de vie : " , self . pdv )
print ( " Points d ' expérience: " , self . exp )
print ( " " )
def affiche_inventaire ( self ) :
""" affiche le contenu de l ' inventaire du personnage """
print ( " Contenu de l ' inventaire de " , self . nom , " : " , 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 """
roleAtk = Perso1
roleDef = Perso2
while Perso1 . nombre_pdv ( ) > 0 and Perso2 . nombre_pdv ( ) > 0 :
if roleAtk . jet_attaque ( ) > roleDef . jet_defense ( ) :
roleDef . change_pdv ( - randint ( 1 , 8 ) )
elif roleAtk . jet_attaque ( ) < roleDef . jet_defense ( ) :
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
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 )
elif Perso2 . nombre_pdv ( ) > 0 :
print ( Perso1 . affiche_nom ( ) , " a succombé, la victoire revient à " , Perso2 . affiche_nom ( ) , " qui remporte un point d ' expérience ! " )
Perso2 . change_exp ( 1 )
elif Perso1 . nombre_pdv ( ) < 0 and Perso2 . nombre_pdv ( ) < 0 :
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, King 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 ( )
Squeezie = Personnage ( " Squeezie " , choice ( [ " Déesee " , " Démon " , " Géant " , " Fée " ] ) )
TiboInShape = Personnage ( " TiboInShape " , choice ( [ " Déesee " , " Démon " , " Géant " , " Fée " ] ) )
PersoTEST = Personnage ( " Moi " , " Fée " )
# commande utile à copier :
# - combat(Squeezie, TiboInShape)