Browse Source

Transférer les fichiers vers ''

Le projet final :)
master
OUEDRAGO Seyba 2 months ago
parent
commit
2199cf85ab
  1. 71
      JDR.py

71
JDR.py

@ -1,5 +1,7 @@
from random import randint
import time
class Personnage:
#initialisation de la classe avec les attributs
def __init__ (self, nom):
self.nom = nom
self.pdv = 20
@ -8,6 +10,7 @@ class Personnage:
self.inventaire = ["potion"]
def menu(self):
#le menu pour choisir ca catégorie
self.cat = int(input("""
1: guerrier
2: magicien
@ -15,8 +18,17 @@ class Personnage:
4: elfe
"""))
if self.cat == 1:
self.cat_affiche = "guerrier"
if self.cat == 2:
self.cat_affiche = "magicien"
if self.cat == 3:
self.cat_affiche = "voleur"
if self.cat == 4:
self.cat_affiche = "elfe"
def jet_attaque(self):
#le jet de dé d'attaque
lancer = randint(1, 20)
if self.cat == 1 or self.cat == 2:
damage = self.exp * 10
@ -27,6 +39,7 @@ class Personnage:
return lancer + damage
def jet_defense(self):
#le jet de dé de défense
lancer = randint(1, 20)
if self.cat == 1:
defense = self.exp * 8
@ -39,20 +52,28 @@ class Personnage:
return lancer + defense
def change_pdv(self, nb_pdv):
#la méthode pour changee les points de vie
self.pdv += nb_pdv
def change_exp(self, nb_exp):
#la méthode pour changer l'expérience
if nb_exp <= 0:
raise ValueError("Le nombre doit être positif ou nul")
self.exp += nb_exp
def affiche_caracteristiques(self):
#la méthode qui affiche les caractéristiques
print("""
vous vous appellez {}
vous êtes un {}
vous avez {} point de vie et {} éxpérience""".format(self.nom, self.cat, self.pdv, self.exp))
vous avez {} point de vie et {} éxpérience""".format(self.nom, self.cat_affiche, self.pdv, self.exp))
def affiche_inventaire(self):
#la méthode qui affiche l'inventaire
armes = ["épée", "bâton", "dague", "arc"]
for arme in armes:
if arme in self.inventaire:
self.inventaire.remove(arme)
if self.cat == 1:
self.inventaire.append("épée")
print(self.inventaire)
@ -69,7 +90,53 @@ class Personnage:
print("vous n'avez pas de catégorie")
self.menu()
def combat(perso1, perso2):
#le combat chaque tout l'attaquant et le défenseur jettent un dé celui qui a le meilleur score inflige des dégats à son adversaire puis les rôles s'inversent jusqu'à la défaire de l'un
tour = 1
attaquant, defenseur = perso1, perso2
while perso1.pdv>0 and perso2.pdv>0:
print(" --- tour {} --- \n".format(tour))
print("{} attaque".format(attaquant.nom))
attaque = attaquant.jet_attaque()
defense = defenseur.jet_defense()
print("l'attaque est de {} et la défense est de {}\n".format(attaque, defense))
if attaque > defense:
degats = randint(1, 8)
print("{} degats\n".format(degats))
defenseur.change_pdv(-degats)
elif defense > attaque:
degats = randint(1, 4)
print("{} degats\n".format(degats))
attaquant.change_pdv(-degats)
else:
degats = 0
print("{} degats\n".format(degats))
if defenseur.pdv <= 0:
print("{} vaincu {} gagne\n".format(defenseur.nom, attaquant.nom))
attaquant.change_exp(1)
print("{} gagne 1 xp\n".format(attaquant.nom))
attaquant.affiche_caracteristiques()
break
if attaquant.pdv <= 0:
print("{} vaincu {} gagne".format(attaquant.nom, defenseur.nom))
defenseur.change_exp(1)
print("{} gagne 1 xp".format(defenseur.nom))
defenseur.affiche_caracteristiques()
break
print("{} a {} point de vie et {} a {} point de vie\n".format(perso1.nom, perso1.pdv, perso2.nom, perso2.pdv))
attaquant, defenseur = defenseur, attaquant
tour +=1
input("appuyer sur Entrée pour continuer...\n")
perso1 = Personnage("Jean")
perso1.menu()
perso2 = Personnage("Victor")
perso2.menu()
mon_personnage = Personnage("Seyba")
combat(perso1, perso2)
Loading…
Cancel
Save