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.
130 lines
4.6 KiB
130 lines
4.6 KiB
"""
|
|
* constructeur et méthodes `change_...`:
|
|
Indique dans la documentation à quoi correspondent les paramètres.
|
|
* L'affichage de l'inventaire aurait pu être amélioré.
|
|
* fonction `tour`:
|
|
il aurait mieux valu utiliser `change_pdv` pour changer les pdv ! Surtout que tu fais n'importe quoi (pourquoi modifier le jet d'attaque ou de défense ???)
|
|
C'est quoi ces `return print(...)` ?!?!? Quel rapport avec la documentation de la fonction ?!?
|
|
* programme principal :
|
|
tu ne peux pas mettre un morceau de programme principal au milieu des fonctions ! Il devrait être après la fonction `combat`.
|
|
il aurait été bien de simplifier la saisie de la catégorie.
|
|
* fonction `combat`:
|
|
tu dis dans la documentation "gére le systéme de combat entre les deux personnage" : quels personnages ? ta fonction n'a pas deparamètres !
|
|
Tu n'as visiblement pas testé les deux dernières fonctions, ni même beaucoup réfléchi aux conditions de la boucle !
|
|
|
|
Note : 6 / 10
|
|
"""
|
|
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")
|
|
|
|
|