Browse Source

+ phase_combat()

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

69
projet poo.py

@ -62,11 +62,36 @@ class Personnage :
def creation_perso() : def creation_perso() :
"""création d'un personnage""" """création d'un personnage"""
pseudo = input("Comment s'appelle votre 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) ")) categorie = int(input("De quel catégorie est votre personnage ? (0 pour guerrier, 1 pour magicien, 2 pour voleur, 3 pour elfe) "))
while not(1 <= categorie <= 4) : 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) ")) 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) 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() : def combat() :
"""fonction principale permettant de faire un combat entre 2 personnages""" """fonction principale permettant de faire un combat entre 2 personnages"""
@ -75,43 +100,8 @@ def combat() :
print() print()
while perso1.pv > 0 and perso2.pv > 0 : while perso1.pv > 0 and perso2.pv > 0 :
degats = perso1.jet_attaque() phase_combat(perso1, perso2)
defense = perso2.jet_defense() phase_combat(perso2, perso1)
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()
if perso1.pv == 0 : if perso1.pv == 0 :
print("le combat est terminé") print("le combat est terminé")
@ -122,5 +112,4 @@ def combat() :
print(f"{perso1.nom} a triomphé de {perso2.nom} et gagne 1 EXP") print(f"{perso1.nom} a triomphé de {perso2.nom} et gagne 1 EXP")
perso1.change_exp(1) perso1.change_exp(1)
combat() combat()
Loading…
Cancel
Save