Browse Source

Mise à jour de 'jdr.py'

master
DA SILVA Ethan 1 year ago
parent
commit
ab878b2436
  1. 97
      jdr.py

97
jdr.py

@ -1,26 +1,85 @@
from math import sqrt
from random import*
class Personnage:
def __init__(self,nom,pdv,exp,cat,inventaire):
def __init__(self, nom, cat):
self.nom = nom
self.pdv = 0
self.exp = 1
self.cat = cat
self.coef = 0
self.pdv = 20
self.exp = 1
self.inventaire = []
if self.cat == "Chevalier":
self.inventaire == ["Grand bouclier", " Epée "]
self.pdv == 35
self.coef == 5
elif self.cat == "Mage":
self.inventaire == ["Spectre ", " Potion de soin "]
self.pdv == 20
self.coef == 2
self.inventaire = ["Epée", "Potion de degat"]
self.coefAtk = 8
self.coefDef = 7
elif self.cat == "Archer":
self.inventaire == ["Arc", " Flèches"]
self.pdv == 20
self.coef == 3
elif self.cat == "Cavalier":
self.inventaire == ["Lance", " Bouclier"]
self.pdv == 45
self.coef == 6
self.inventaire = ["Arc en bois", "Potion de vitesse"]
self.coefAtk = 7
self.coefDef = 4
elif self.cat == "Mage":
self.inventaire = ["Spectre", "Grimoire"]
self.coefAtk = 5
self.coefDef = 8
elif self.cat == "Assasin":
self.inventaire = ["Dagues", "Potion de camouflage"]
self.coefAtk = 9
self.coefDef = 5
def jet_attaque(self):
"""renvoie jet d'attaque"""
atkPoints = randint(1, 20)
return atkPoints + self.exp*self.coefAtk*0.1
def jet_defense(self):
"""renvoie jet de défense"""
defPoints = randint(1, 20)
return defPoints + self.exp*self.coefDef*0.1
def change_pdv(self, nb_pdv):
"""change le nombre de pdv"""
self.pdv = self.pdv + nb_pdv
def change_exp(self, nb_exp):
"""change le nombre d'exp"""
self.exp = self.exp + nb_exp
def affiche_caracteristiques(self):
"""affiche les caractéristiques du personnage (nom, catégorie, pdv, exp)"""
print("Nom :", self.nom)
print("Catégorie :", self.cat)
print("Points de vie :", self.pdv)
print("Points d'expérience:", self.exp)
def affiche_inventaire(self):
"""affiche le contenu de l'inventaire du personnage"""
print("L'inventaire de", self.nom, ":",self.inventaire)
def combat(Perso1, Perso2):
"""Lance un combat jusqu'à ce qu'un personnage n'a plus de points de vie puis donne un point d'expérience au vainqueur"""
roleAtk = Perso1
roleDef = Perso2
while Perso1.nombre_pdv() > 0 and Perso2.nombre_pdv() > 0:
if roleAtk.jet_attaque() > roleDef.jet_defense():
roleDef.change_pdv(-randint(1, 8))
elif roleAtk.jet_attaque() < roleDef.jet_defense():
roleAtk.change_pdv(-randint(1, 4))
elif roleAtk.jet_attaque() == roleDef.jet_defense():
roleAtk.change_pdv()
roleDef.change_pdv()
Perso1.affiche_caracteristiques()
Perso2.affiche_caracteristiques()
roleAtk, roleDef = roleDef, roleAtk
if Perso1.nombre_pdv() > 0:
print(Perso2.affiche_nom(), "a perdu, le vainqueur est ",Perso1.affiche_nom(), "qui remporte un point d'expérience !")
Perso1.change_exp(1)
elif Perso2.nombre_pdv() > 0:
print(Perso1.affiche_nom(), "a perdu, le vainqueur est ",Perso2.affiche_nom(), "qui remporte un point d'expérience !")
Perso2.change_exp(1)
elif Perso1.nombre_pdv() < 0 and Perso2.nombre_pdv() < 0:
print("Le jet d'attaque est trop faible pour infliger assez de dégats pour gagner le combat et le jet de défense est trop résistant", Perso1.affiche_nom(), "et", Perso2.affiche_nom(), "ont pas pris de dégats conséquents ! egalité donc recommencer le combat")
Perso1.regen_pdv()
Perso2.regen_pdv()
Arkunir = Personnage("Arkunir", "Mage")
Elon Musk = Personnage("Elon Musk", "Archer")

Loading…
Cancel
Save