DA SILVA Ethan
1 year ago
1 changed files with 78 additions and 19 deletions
@ -1,26 +1,85 @@ |
|||||
from math import sqrt |
|
||||
|
from random import* |
||||
class Personnage: |
class Personnage: |
||||
def __init__(self,nom,pdv,exp,cat,inventaire): |
def __init__(self, nom, cat): |
||||
self.nom = nom |
self.nom = nom |
||||
self.pdv = 0 |
|
||||
self.exp = 1 |
|
||||
self.cat = cat |
self.cat = cat |
||||
self.coef = 0 |
self.pdv = 20 |
||||
|
self.exp = 1 |
||||
self.inventaire = [] |
self.inventaire = [] |
||||
if self.cat == "Chevalier": |
if self.cat == "Chevalier": |
||||
self.inventaire == ["Grand bouclier", " Epée "] |
self.inventaire = ["Epée", "Potion de degat"] |
||||
self.pdv == 35 |
self.coefAtk = 8 |
||||
self.coef == 5 |
self.coefDef = 7 |
||||
elif self.cat == "Mage": |
|
||||
self.inventaire == ["Spectre ", " Potion de soin "] |
|
||||
self.pdv == 20 |
|
||||
self.coef == 2 |
|
||||
elif self.cat == "Archer": |
elif self.cat == "Archer": |
||||
self.inventaire == ["Arc", " Flèches"] |
self.inventaire = ["Arc en bois", "Potion de vitesse"] |
||||
self.pdv == 20 |
self.coefAtk = 7 |
||||
self.coef == 3 |
self.coefDef = 4 |
||||
elif self.cat == "Cavalier": |
elif self.cat == "Mage": |
||||
self.inventaire == ["Lance", " Bouclier"] |
self.inventaire = ["Spectre", "Grimoire"] |
||||
self.pdv == 45 |
self.coefAtk = 5 |
||||
self.coef == 6 |
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…
Reference in new issue