Browse Source

final

master
tommy 2 months ago
parent
commit
2519cf2890
  1. 78
      jeu.py

78
jeu.py

@ -15,7 +15,8 @@ class Personnage:
self.inventaire = ["dague", "potion"]
elif self.cat == "elfe":
self.inventaire = ["arc", "potion"]
#jet d'attaque
def jet_attaque(self):
lancer = randint(1, 20)
if self.cat == "guerrier":
@ -28,6 +29,7 @@ class Personnage:
degats = self.exp * 8
return lancer + degats
#jet de défense
def jet_defense(self):
lancer = randint(1, 20)
if self.cat == "guerrier":
@ -39,18 +41,21 @@ class Personnage:
elif self.cat == "elfe":
protection = self.exp * 10
return lancer + protection
#changement de points de vie et d'experience
def change_pdv(self, nb_pdv):
self.pdv = self.pdv + nb_pdv
self.pdv += nb_pdv
if self.pdv < 0:
self.pdv = 0
def change_exp(self, nb_exp):
if nb_exp < 0:
raise ValueError("le parametre doit etre positif")
self.exp = self.exp + nb_exp
#affichages
def affiche_caracteristiques(self):
print("vous vous appelez", self.nom, ", vous etes un", self.cat, ", vous avez", self.pdv, " points de vie et", self.exp, "points d'experience.")
print(self.nom, "vous etes un", self.cat, ", vous avez", self.pdv, " points de vie et", self.exp, "points d'experience.")
def affiche_inventaire(self):
print(self.inventaire)
@ -58,4 +63,63 @@ class Personnage:
mon_perso = Personnage("moi", "guerrier")
# Instanciation des personnages
joueur1 = Personnage("Vyke", "guerrier")
joueur2 = Personnage("Ranni", "magicien")
# Fonction de combat
def combat(p1, p2):
attaquant = p1
defenseur = p2
tour = 1
while p1.pdv > 0 and p2.pdv > 0:
print("\n--- Tour {} ---".format(tour))
print("{} attaque {}".format(attaquant.nom, defenseur.nom))
att = attaquant.jet_attaque()
deff = defenseur.jet_defense()
print("Jet d'attaque de {} : {}".format(attaquant.nom, att))
print("Jet de défense de {} : {}".format(defenseur.nom, deff))
if att > deff:
degats = randint(1, 8)
defenseur.change_pdv(-degats)
print("{} réussi son attaque et lance un dé à 8 faces, il obtient {}. {} perd {} PDV !".format(attaquant.nom, degats, defenseur.nom, degats))
elif att < deff:
degats = randint(1, 4)
attaquant.change_pdv(-degats)
print("{} rate son attaque et subit une contre-attaque ! {} lance un dé à 4 faces et obtient {}. {} perd {} PDV.".format(attaquant.nom, defenseur.nom, degats, attaquant.nom, degats))
else:
print("Les attaques s'annulent, personne ne perd de points de vie")
# Affichage des stats
attaquant.affiche_caracteristiques()
defenseur.affiche_caracteristiques()
input("Presse la touche entrée pour continuer")
# Échange des rôles
attaquant, defenseur = defenseur, attaquant
tour += 1
# Fin du combat
print("\n--- Fin du combat ---")
if p1.pdv > 0:
print("{} a gagné le combat ! Il va pouvoir fêter ça à la taverne !".format(p1.nom))
p1.change_exp(1)
else:
print("{} a gagné le combat ! Il va pouvoir fêter ça à la taverne !".format(p2.nom))
p2.change_exp(1)
# Affichage final
print("\n--- Caractéristiques finales ---")
p1.affiche_caracteristiques()
p2.affiche_caracteristiques()
# Lancement du combat
combat(joueur1, joueur2)
Loading…
Cancel
Save