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.

114 lines
3.7 KiB

import random
class Personnage :
'''on défini les attribu'''
def __init__ ( self, nom , cat ):
self.nom = nom
self.pdv = 20
self.exp = 1
self.cat = cat
if self.cat == 'guerrier':
self.inventaire = ['épée','potion']
elif self.cat == 'magicien' :
self.inventaire = ['bâton','potion']
elif self.cat == 'voleur':
self.inventaire = ['dague','potion']
elif self.cat == 'elfe':
self.inventaire = ['arc','potion']
def jet_attaque (self):
"""renvoie le jet d'attaque en prenant un nombre au hasard entre 1 et 20
#et en ajoutant l'experience du personnage multiplier par ça classe
"""
lanceA = random.randint(1,20)
if self.cat =='guerrier' or self.cat =='magicien':
return lanceA + self.exp* 10
elif self.cat =='voleur':
return lanceA + self.exp * 3
elif self.cat =='elfe':
return lanceA + self.exp * 8
def jet_defense (self):
"""renvoie le jet de defence en prenant un nombre au hasard entre
1 et 20 et en ajoutant l'experience du personnage multiplier par
ça classe"""
lanceD = random.randint(1,20)
if self.cat == 'guerrier':
return lanceD + self.exp * 8
elif self.cat == 'magicien':
return lanceD + self.exp * 7
elif self.cat == 'voleur':
return lanceD + self.exp * 9
elif self.cat == 'elfe':
return lanceD + self.exp * 10
def change_pdv (self, nb_pdv):
'''change le nombre de point de vie du personnage (nombre possitif
ou negatif)'''
self.pdv = self.pdv + nb_pdv
def change_exp (self, nb_exp):
'''change le nombre de point de vie du personnage
(nombre possitif)'''
self.exp = self.exp + nb_exp
def affiche_caracteristique (self):
'''affiche les caracteristique du personnage '''
print("je m'appelle",self.nom,"je suis un",
self.cat ,"j'ai",self.pdv, "point de vie et j'ai",
self.exp,
"niveau d'experience")
def affiche_inventaire (self):
'''affiche l'inventaire du personnage'''
print(" dans mon inventaire j'ai", self.inventaire)
def tour(perso1, perso2):
'''fait un tour entre perso1 et 2 avec les pdv a enlever,
les dégats mis
l'adversaire et la défence'''
attaque = perso1.jet_attaque()
defense = perso2.jet_defense()
if attaque > defense :
lance = random.randint(1,8)
defense = perso2.pdv - lance
return print (" lors de cette attaque", perso1,
"a perdu 0 pdv et" ,perso2, ",", defense, "pdv")
elif attaque < defense :
lance = random.randint (1,4)
attaque = perso1.pdv - lance
return print (" lors de cette attaque", nom1,
"a perdu", attaque,"et" , nom2 , "0 pdv")
nom1 = input("entrer le nom du premier joueur ")
cat1 = input("entrer la categorie du premier joueur entre elfe,voleur,"
"magicien ou guerrier ")
nom2 = input("entrer le nom du deuxieme joueur ")
cat2 = input("entrer la categorie du deuxieme joueur entre elfe,voleur,"
"magicien ou guerrier ")
perso1 = Personnage(nom1,cat1)
perso2 = Personnage(nom2,cat2)
def combat():
'''gére le systéme de combat entre les deux personnage'''
while perso1.pdv == 0 or perso2 == 0:
tour(perso1,perso2)
if perso1.pdv == 0:
print(perso1 ,"a perdu le combat")
elif perso2.pdv == 0:
print(perso2 ,"a perdu le combat")