You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
3.3 KiB

from random import randint
class Personnage:
def __init__(self, nom, cat):
"""methode qui initialise les attributs"""
self.nom = nom
self.cat = cat
self.pdv = 20
self.exp = 1
if self.cat == "guerrier":
self.inventaire = ["sword, potion"] #retirer les # qui sont temporaire car non defini
elif self.cat == "magicien":
self.inventaire = ["stick, potion"]
elif self.cat == "voleur":
self.inventaire = ["dagger, potion"]
elif self.cat == "elfe":
self.inventaire = ["bow, potion"]
def jet_attaque(self):
""" Renvoie un jet dattaque qui est la somme d'un nombre aléatoire entre 1 et 20 a experience du joueur multiplier par coef"""
de = randint(1,20)
if self.cat == "guerrier" or self.cat == "magicien":
coef = 10
elif self.cat == "voleur":
coef = 3
else:
coef = 8
return de+(self.exp*coef)
def jet_defense(self):
""" Renvoie un jet de defense qui est la somme d'un nombre aléatoire
entre 1 et 20 a experience du joueur multiplier par coef"""
de = randint(1,20)
if self.cat == "guerrier":
coef = 8
elif self.cat == "magicien":
coef = 7
elif self.cat == "voleur":
coef = 9
else:
coef = 10
return de+(self.exp*coef)
def change_pdv(self, nb_pdv):
""" Change les point de vie du joueur en ajoutant la valeur positive ou
negative au point de vie qu'il possede"""
self.pdv += nb_pdv
def change_exp(self, nb_exp):
self.exp += nb_exp
def affiche_caracteristique(self):
print("-------------------------\n \n",
f" Nom : {self.nom}\n",
f" Catégorie : {self.cat}\n",
f" Point de vie : {self.pdv}\n",
f" Expérience : {self.exp}\n \n",
"-------------------------\n")
def affiche_inventaire(self):
print("------------------------------------\n \n",
f" Inventaire : {self.inventaire}\n \n",
"-----------------------------------")
xuan = Personnage("xuan", "guerrier")
jojo = Personnage("Jojo", "voleur")
def start():
defense_attaquant = xuan.jet_defense()
attaque_defenseur = jojo.jet_defense()
while xuan.pdv > 0 and jojo.pdv > 0:
attaquant = xuan.jet_attaque()
defenseur = jojo.jet_defense()
print(" Xuan fait un jet d'attaque de ", attaquant, " et Jojo un jet",
" de defense de ", defenseur, " alors : ")
if attaquant > defenseur:
r = randint(1,8)
jojo.change_pdv(-r)
print("Jojo perd ", r , " point de vie !!")
else:
r = randint(1,4)
xuan.change_pdv(-r)
print("Xuan perd ", r , " point de vie !!")
xuan.affiche_caracteristique()
jojo.affiche_caracteristique()
if jojo.pdv <= 0:
xuan.change_exp(1)
print(f"Jojo as perdu Xuan gagne 1 d'experience, il en a maintenant {xuan.exp}")
else:
jojo.change_exp(1)
print(f"Xuan as perdu Jojo gagne 1 d'experience, il en a maintenant {jojo.exp}")