|
|
|
@ -62,11 +62,36 @@ class Personnage : |
|
|
|
def creation_perso() : |
|
|
|
"""création d'un personnage""" |
|
|
|
pseudo = input("Comment s'appelle votre personnage ? ") |
|
|
|
categorie = int(input("De quel catégorie est votre personnage ? (1 pour guerrier, 2 pour magicien, 3 pour voleur, 4 pour elfe) ")) |
|
|
|
while not(1 <= categorie <= 4) : |
|
|
|
categorie = int(input("De quel catégorie est votre personnage ? (0 pour guerrier, 1 pour magicien, 2 pour voleur, 3 pour elfe) ")) |
|
|
|
while not(0 <= categorie <= 3) : |
|
|
|
categorie = int(input("De quel catégorie est votre personnage ? (1 pour guerrier, 2 pour magicien, 3 pour voleur, 4 pour elfe) ")) |
|
|
|
return Personnage(pseudo, categorie) |
|
|
|
|
|
|
|
def phase_combat(attaquant, defenseur) : |
|
|
|
"""fonction permettant de faire un round du combat principal""" |
|
|
|
degats = attaquant.jet_attaque() |
|
|
|
defense = defenseur.jet_defense() |
|
|
|
|
|
|
|
if degats == defense : |
|
|
|
print("il y a égalité sur les lancés, personne ne prend de dégâts") |
|
|
|
print() |
|
|
|
elif degats > defense : |
|
|
|
perte_pv = randint(-8,-1) |
|
|
|
defenseur.change_pv(perte_pv) |
|
|
|
print(f"{attaquant.nom} inflige {abs(perte_pv)} dégâts d'attaque à {defenseur.nom}") |
|
|
|
print() |
|
|
|
elif degats < defense : |
|
|
|
perte_pv = randint(-4,-1) |
|
|
|
attaquant.change_pv(perte_pv) |
|
|
|
print(f"{defenseur.nom} se défend parfaitement et inflige même {abs(perte_pv)} dégâts de contre à {attaquant.nom}") |
|
|
|
print() |
|
|
|
|
|
|
|
attaquant.affiche_caracteristiques() |
|
|
|
print() |
|
|
|
defenseur.affiche_caracteristiques() |
|
|
|
print() |
|
|
|
print("appuyer sur entrée pour continuer") |
|
|
|
input() |
|
|
|
|
|
|
|
def combat() : |
|
|
|
"""fonction principale permettant de faire un combat entre 2 personnages""" |
|
|
|
@ -75,43 +100,8 @@ def combat() : |
|
|
|
print() |
|
|
|
|
|
|
|
while perso1.pv > 0 and perso2.pv > 0 : |
|
|
|
degats = perso1.jet_attaque() |
|
|
|
defense = perso2.jet_defense() |
|
|
|
if degats == defense : |
|
|
|
print("il y a égalité sur les lancés, personne ne prend de dégâts") |
|
|
|
print() |
|
|
|
elif degats > defense : |
|
|
|
perte_pv = randint(-8,-1) |
|
|
|
perso2.change_pv(perte_pv) |
|
|
|
print(f"{perso1.nom} inflige {abs(perte_pv)} dégâts d'attaque à {perso2.nom}") |
|
|
|
print() |
|
|
|
elif degats < defense : |
|
|
|
perte_pv = randint(-4,-1) |
|
|
|
perso1.change_pv(perte_pv) |
|
|
|
print(f"{perso2.nom} se défend parfaitement et inflige même {abs(perte_pv)} dégâts de contre à {perso1.nom}") |
|
|
|
print() |
|
|
|
|
|
|
|
degats = perso2.jet_attaque() |
|
|
|
defense = perso1.jet_defense() |
|
|
|
if degats == defense : |
|
|
|
print("il y a égalité sur les lancés, personne ne prend de dégâts") |
|
|
|
elif degats > defense : |
|
|
|
perte_pv = randint(-8,-1) |
|
|
|
perso1.change_pv(perte_pv) |
|
|
|
print(f"{perso2.nom} inflige {abs(perte_pv)} dégâts d'attaque à {perso1.nom}") |
|
|
|
print() |
|
|
|
elif degats < defense : |
|
|
|
perte_pv = randint(-4,-1) |
|
|
|
perso2.change_pv(perte_pv) |
|
|
|
print(f"{perso1.nom} se défend parfaitement et inflige même {abs(perte_pv)} dégâts de contre à {perso2.nom}") |
|
|
|
print() |
|
|
|
perso1.affiche_caracteristiques() |
|
|
|
print() |
|
|
|
perso2.affiche_caracteristiques() |
|
|
|
print() |
|
|
|
print("appuyer sur entrée pour continuer") |
|
|
|
input() |
|
|
|
|
|
|
|
phase_combat(perso1, perso2) |
|
|
|
phase_combat(perso2, perso1) |
|
|
|
|
|
|
|
if perso1.pv == 0 : |
|
|
|
print("le combat est terminé") |
|
|
|
@ -122,5 +112,4 @@ def combat() : |
|
|
|
print(f"{perso1.nom} a triomphé de {perso2.nom} et gagne 1 EXP") |
|
|
|
perso1.change_exp(1) |
|
|
|
|
|
|
|
|
|
|
|
combat() |