diff --git a/projet poo.py b/projet poo.py index 580fc20..f92eaef 100644 --- a/projet poo.py +++ b/projet poo.py @@ -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é") @@ -121,6 +111,5 @@ def combat() : print("le combat est terminé") print(f"{perso1.nom} a triomphé de {perso2.nom} et gagne 1 EXP") perso1.change_exp(1) - - + combat() \ No newline at end of file