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.

106 lines
3.4 KiB

1 week ago
# 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)
1 week ago
3 weeks ago
from random import randint
3 weeks ago
class Personnage:
2 weeks ago
def __init__(self, nom, cat):
3 weeks ago
pdv = 20
exp = 1
self.nom = nom
self.pdv = pdv
self.exp = exp
self.cat = cat
3 weeks ago
2 weeks ago
if self.cat == "guerrier":
self.inventaire = ["épée","potion"]
self.coef_at = 10
self.coef_def = 8
3 weeks ago
2 weeks ago
elif self.cat == "magicien":
self.inventaire = ["baton","potion"]
self.coef_at = 10
self.coef_def = 7
3 weeks ago
2 weeks ago
elif self.cat == "voleur":
self.inventaire = ["dague","potion"]
self.coef_at = 3
self.coef_def = 9
3 weeks ago
2 weeks ago
elif self.cat == "elfe":
self.inventaire = ["arc","potion"]
self.coef_at = 8
self.coef_def = 10
3 weeks ago
3 weeks ago
def jet_attaque (self):
2 weeks ago
lancer_dés = randint (1,20)
3 weeks ago
attaque = lancer_dés + self.coef_at * self.exp
return attaque
1 week ago
def jet_defense (self):
2 weeks ago
lancer_dés = randint (1,20)
1 week ago
defense = lancer_dés + self.exp * self.coef_def
return defense
3 weeks ago
1 week ago
def change_pdv (self, nb_pdv):
2 weeks ago
self.pdv = self.pdv + nb_pdv
return self.pdv
1 week ago
def change_exp (self, nb_exp):
2 weeks ago
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")
2 weeks ago
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)
1 week ago
while p1.pdv > 0 and p2.pdv > 0: # p1 attaque p2
1 week ago
ja = p1.jet_attaque()
jd = p2.jet_defense()
1 week ago
1 week ago
if ja > jd :
p2.change_pdv(-randint(1,8)) #p2 perd des point de vie
elif jd > ja :
1 week ago
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
1 week ago
1 week ago
elif p1.pdv > 0 and p2.pdv > 0: #p2 attaque p1
1 week ago
ja = p2.jet_attaque()
jd = p1.jet_defense()
1 week ago
1 week ago
if ja > jd :
1 week ago
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
1 week ago