Browse Source

+ phase_combat()

master
ROBINET Julien 3 weeks ago
parent
commit
462999f565
  1. 53
      projet poo.py

53
projet poo.py

@ -62,56 +62,46 @@ 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()
def combat() :
"""fonction principale permettant de faire un combat entre 2 personnages"""
perso1 = creation_perso()
perso2 = creation_perso()
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}")
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)
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}")
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()
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}")
attaquant.affiche_caracteristiques()
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()
defenseur.affiche_caracteristiques()
print()
print("appuyer sur entrée pour continuer")
input()
def combat() :
"""fonction principale permettant de faire un combat entre 2 personnages"""
perso1 = creation_perso()
perso2 = creation_perso()
print()
while perso1.pv > 0 and perso2.pv > 0 :
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()
Loading…
Cancel
Save