|
|
|
# Manon BELLYNCK TG2
|
|
|
|
### classe qui répond au cahier des charges
|
|
|
|
### le jeu ne se lance pas tout seul, c'est dommage
|
|
|
|
### Et puis il ne se passe pas grand chose, la faute à un test sur les pdv à revoir ...
|
|
|
|
### On demande une interface, donc on doit visualiser le combat, machin a attaqué et gagné
|
|
|
|
### l'autre perd x pdv ...
|
|
|
|
### note : 14/20 (classe : 12/12 prog : 2/8)
|
|
|
|
|
|
|
|
from random import randint
|
|
|
|
|
|
|
|
class Personnage:
|
|
|
|
def __init__(self, nom, cat):
|
|
|
|
pdv = 20
|
|
|
|
exp = 1
|
|
|
|
self.nom = nom
|
|
|
|
self.pdv = pdv
|
|
|
|
self.exp = exp
|
|
|
|
self.cat = cat
|
|
|
|
|
|
|
|
if self.cat == "guerrier":
|
|
|
|
self.inventaire = ["épée","potion"]
|
|
|
|
self.coef_at = 10
|
|
|
|
self.coef_def = 8
|
|
|
|
|
|
|
|
elif self.cat == "magicien":
|
|
|
|
self.inventaire = ["baton","potion"]
|
|
|
|
self.coef_at = 10
|
|
|
|
self.coef_def = 7
|
|
|
|
|
|
|
|
elif self.cat == "voleur":
|
|
|
|
self.inventaire = ["dague","potion"]
|
|
|
|
self.coef_at = 3
|
|
|
|
self.coef_def = 9
|
|
|
|
|
|
|
|
elif self.cat == "elfe":
|
|
|
|
self.inventaire = ["arc","potion"]
|
|
|
|
self.coef_at = 8
|
|
|
|
self.coef_def = 10
|
|
|
|
|
|
|
|
def jet_attaque (self):
|
|
|
|
lancer_dés = randint (1,20)
|
|
|
|
attaque = lancer_dés + self.coef_at * self.exp
|
|
|
|
return attaque
|
|
|
|
|
|
|
|
def jet_defense (self):
|
|
|
|
lancer_dés = randint (1,20)
|
|
|
|
defense = lancer_dés + self.exp * self.coef_def
|
|
|
|
return defense
|
|
|
|
|
|
|
|
def change_pdv (self, nb_pdv):
|
|
|
|
self.pdv = self.pdv + nb_pdv
|
|
|
|
return self.pdv
|
|
|
|
|
|
|
|
def change_exp (self, nb_exp):
|
|
|
|
self.exp = self.exp + nb_exp
|
|
|
|
return self.exp
|
|
|
|
|
|
|
|
def affiche_caracteristiques (self):
|
|
|
|
print ("Je suis", self.nom, "je suis un", self.cat, "j'ai", self.pdv,"point de vie et", self.exp, "point d'experience")
|
|
|
|
|
|
|
|
def affiche_inventaire (self):
|
|
|
|
print ("j'ai", self.inventaire)
|
|
|
|
|
|
|
|
#p = Personnage("pierrot","guerrier")
|
|
|
|
|
|
|
|
def jouer():
|
|
|
|
nomP1 = input("joueur 1 votre nom")
|
|
|
|
catP1 =input ("quel est la catégorie du jouer 1")
|
|
|
|
p1 = Personnage (nomP1, catP1)
|
|
|
|
|
|
|
|
nomP2 = input("joueur 2 votre nom")
|
|
|
|
catP2 =input ("quel est la catégorie du jouer 2")
|
|
|
|
p2 = Personnage (nomP2, catP2)
|
|
|
|
|
|
|
|
while p1.pdv > 0 and p2.pdv > 0: # p1 attaque p2
|
|
|
|
ja = p1.jet_attaque()
|
|
|
|
jd = p2.jet_defense()
|
|
|
|
|
|
|
|
if ja > jd :
|
|
|
|
p2.change_pdv(-randint(1,8)) #p2 perd des point de vie
|
|
|
|
elif jd > ja :
|
|
|
|
p1.change_pdv(-randint(1,4))#p1 perd des point de vie
|
|
|
|
|
|
|
|
elif p1.pdv == 0:
|
|
|
|
p2.change_exp(1)
|
|
|
|
print ("p2 gagnant et p1 perdant") #p1 mort en attaquant
|
|
|
|
elif p2.pdv == 0:
|
|
|
|
p1.change_exp(1)
|
|
|
|
print ("p1 gagnant et p2 perdant") #p2 mort en défendant
|
|
|
|
|
|
|
|
elif p1.pdv > 0 and p2.pdv > 0: #p2 attaque p1
|
|
|
|
ja = p2.jet_attaque()
|
|
|
|
jd = p1.jet_defense()
|
|
|
|
|
|
|
|
if ja > jd :
|
|
|
|
p2.change_pdv(-randint(1,8)) #p2 perd des point de vie
|
|
|
|
elif jd > ja :
|
|
|
|
p1.change_pdv(-randint(1,4))#p1 perd des point de vie
|
|
|
|
|
|
|
|
elif p1.pdv == 0:
|
|
|
|
p2.change_exp(1)
|
|
|
|
print ("p2 gagnant et p1 perdant") #p1 mort en défendant
|
|
|
|
elif p2.pdv == 0:
|
|
|
|
p1.change_exp(1)
|
|
|
|
print ("p1 gagnant et p2 perdant")#p2 mort en attaquant
|
|
|
|
|