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.

116 lines
3.5 KiB

import random
class Personne:
def __init__(self, nom, cat):
self.__nom = nom
self.__xp = 1
self.__cat = cat
if self.__cat == 'guerrier':
self.__hp = 20
elif self.__cat == 'mage':
self.__hp =20
elif self.__cat == 'voleur':
self.__hp = 30
elif self.__cat == 'elfe':
self.__hp = 22
if cat == 'guerrier':
self.__inv = ['epee', 'potion']
elif cat == 'mage':
self.__inv = ['baton', 'potion']
elif cat == 'voleur':
self.__inv = ['dague', 'potion']
elif cat == 'elfe':
self.__inv = ['arc', 'potion']
if self.get_cat() == 'guerrier' or self.get_cat() == 'mage':
self.__coefAtq = 10
elif self.get_cat() == 'voleur':
self.__coefAtq = 3
elif self.get_cat() == 'elfe':
self.__coefAtq = 8
if self.get_cat() == 'guerrier':
self.__coefAtq = 8
if self.get_cat() == 'mage':
self.__coefDef = 7
elif self.get_cat() == 'voleur':
self.__coefDef = 9
elif self.get_cat() == 'elfe':
self.__coefDef = 10
def get_nom(self):
return self.__nom
def get_hp(self):
return self.__hp
def get_xp(self):
return self.__xp
def get_cat(self):
return self.__cat
def get_inv(self):
return self.__inv
def get_coef_atq(self):
return self.__coefAtq
def get_coef_def(self):
return self.__coefDef
def set_nom(self):
self.__nom = nom
def jet_attaque(self):
return random.randint(1, 20) + (self.get_xp()*self.get_coef_atq())
def jet_defense(self):
return random.randint(1, 20) + (self.get_xp()*self.get_coef_def())
def change_pdv(self, nb_pdv):
self.__hp += nb_pdv
def change_exp(self, nb_exp):
self.__xp += nb_exp
def affiche_caracteristiques(self):
print('caractéristiques de ', self.get_nom(),':',
'\n catégorie: ', self.get_cat(),
'\n hp: ', self.get_hp(),
'\n xp: ', self.get_xp(),
)
def affiche_inventaire(self):
print('\n votre inventaire: ', self.get_inv())
def tour(joueur, bot):
if joueur.jet_attaque() > bot.jet_defense():
nb_pdv = (-1) * random.randint(1,8)
bot.change_pdv(nb_pdv)
print('\n vous avez infligé ', -nb_pdv, "pts de dégats à l'ennemie!")
elif joueur.jet_attaque() < bot.jet_defense():
nb_pdv = (-1) * random.randint(1,4)
joueur.change_pdv(nb_pdv)
print('\n vous avez reçu ', -nb_pdv, "pts de dégats de l'ennemie!")
else:
print('\n parade parfaite: aucun des joueur ne perd de points de vie')
def jeu(joueur, bot):
jhp = joueur.get_hp()
bhp = bot.get_hp()
if jhp > 0 and bhp > 0:
tour(joueur, bot)
joueur.affiche_caracteristiques()
bot.affiche_caracteristiques()
jeu(joueur, bot)
elif joueur.get_hp() > 0:
joueur.change_exp(1)
print("vous avez gagné le combat! et remporté 1 point d'experience!")
joueur = Personne('joueur', 'guerrier')
bot = Personne('bot', 'voleur')
else:
print('vous avez perdu!')
joueur = Personne('joueur', 'guerrier')
bot = Personne('bot', 'voleur')
joueur = Personne('joueur', 'guerrier')
bot = Personne('bot', 'voleur')