From d79c6eb4b47e63d5b0a12379770192e64e246566 Mon Sep 17 00:00:00 2001 From: mathis <> Date: Thu, 19 Sep 2024 22:56:19 +0200 Subject: [PATCH] programme fini(maison) reste interface --- jeu de rôle.py | 144 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 117 insertions(+), 27 deletions(-) diff --git a/jeu de rôle.py b/jeu de rôle.py index 097080d..64181f1 100644 --- a/jeu de rôle.py +++ b/jeu de rôle.py @@ -5,6 +5,7 @@ class Personne: self.__nom = nom self.__xp = 1 self.__cat = cat + self.__pot = 2 if self.__cat == 'guerrier': self.__hp = 20 elif self.__cat == 'mage': @@ -28,8 +29,8 @@ class Personne: elif self.get_cat() == 'elfe': self.__coefAtq = 8 if self.get_cat() == 'guerrier': - self.__coefAtq = 8 - if self.get_cat() == 'mage': + self.__coefDef = 8 + elif self.get_cat() == 'mage': self.__coefDef = 7 elif self.get_cat() == 'voleur': self.__coefDef = 9 @@ -48,6 +49,9 @@ class Personne: def get_cat(self): return self.__cat + def get_pot(self): + return self.__pot + def get_inv(self): return self.__inv @@ -81,40 +85,116 @@ class Personne: def affiche_inventaire(self): print('\n votre inventaire: ', self.get_inv()) + +nb_tour = 0 +liste_tour = ['bot', 'joueur'] + +def tour(attaquant, defenseur): + global nb_tour + nb_tour += 1 + liste_tour.reverse() + attaquant = liste_tour[0] + defenseur = liste_tour[1] + nb_potions = joueur.get_pot() + if attaquant == 'joueur': + print("\nTour n°", nb_tour) + action = input(print("\nvous pouvez attaquer ou utiliser une potion de soins(possédée(s):", nb_potions, "),", + "\nquelle est votre action?", + "\nA pour attaquer / E pour potion")).upper() + if action == "A": + dmg = joueur.jet_attaque() + print("\nvous lancez un jet d'attaque...", + "\nvotre jet d'attaque vaut: ", dmg, "...") + shield = bot.jet_defense() + print("\ndonc votre adversaire lance un jet de defense...", + "\nle jet de defense ennemie vaut: ", shield, "...") + elif action == "E": + if nb_potions < 0: + joueur.change_pdv(10) + joueur.__pot -= 1 + print("\nvous vous soignez...", + "\nil vous reste ", joueur.get_pot(), " potion(s)") + else: + print("\nvous n'avez plus de potions") + tour(attaquant, defenseur) + if dmg > shield: + nb_pdv = (-1) * random.randint(1,8) + bot.change_pdv(nb_pdv) + print("\nvous avez remporté le tour...", + "\net infligé ", -nb_pdv, "pts de dégats à l'ennemie!") + elif dmg < shield: + nb_pdv = (-1) * random.randint(1,4) + joueur.change_pdv(nb_pdv) + print("\nvous avez perdu le tour...", + "\net reçu ", -nb_pdv, "pts de dégats de l'ennemie!") + else: + print('\nparade parfaite: aucun des joueur ne perd de points de vie') + elif attaquant == 'bot': + print("\nTour n°", nb_tour) + dmg = bot.jet_attaque() + print("\nvotre adversaire lance un jet d'attaque...", + "\nle jet d'attaque ennemie vaut: ", dmg, "...") + action = input(print("\nvous pouvez vous defendre ou utiliser une potion de soins(possédée(s):", nb_potions, "),", + "\nquelle est votre action?", + "\nZ pour defendre / E pour potion")).upper() + if action =="Z": + shield = joueur.jet_defense() + print("\nvous lancez un jet de defense...", + "\nvotre jet de defense vaut: ", shield, "...") + elif action == "E": + if nb_potions < 0: + joueur.change_pdv(10) + joueur.__pot -= 1 + print("\nvous vous soignez...", + "\nil vous reste ", joueur.get_pot(), " potion(s).") + else: + print("\nvous n'avez plus de potions") + tour(attaquant, defenseur) + if dmg > shield: + nb_pdv = (-1) * random.randint(1,8) + joueur.change_pdv(nb_pdv) + print("\nvous avez perdu le tour...", + "\net reçu ", -nb_pdv, "pts de dégats de l'ennemie!") + elif dmg < shield: + nb_pdv = (-1) * random.randint(1,4) + bot.change_pdv(nb_pdv) + print("\nvous avez remporté le tour...", + "\net infligé ", -nb_pdv, "pts de dégats à l'ennemie!") + else: + print('\nparade parfaite: aucun des joueur ne perd de points de vie') -def tour(joueur, bot): - if joueur.jet_attaque() > bot.jet_defense(): - nb_pdv = (-1) * random.randint(1,8) - bot.change_pdv(nb_pdv) - print('\n vous avez infligé ', -nb_pdv, "pts de dégats à l'ennemie!") - elif joueur.jet_attaque() < bot.jet_defense(): - nb_pdv = (-1) * random.randint(1,4) - joueur.change_pdv(nb_pdv) - print('\n vous avez reçu ', -nb_pdv, "pts de dégats de l'ennemie!") - else: - print('\n parade parfaite: aucun des joueur ne perd de points de vie') +liste = ['defenseur', 'attaquant'] def jeu(joueur, bot): - jhp = joueur.get_hp() - bhp = bot.get_hp() - if jhp > 0 and bhp > 0: - tour(joueur, bot) - joueur.affiche_caracteristiques() - bot.affiche_caracteristiques() - jeu(joueur, bot) - elif joueur.get_hp() > 0: - joueur.change_exp(1) - print("vous avez gagné le combat! et remporté 1 point d'experience!") + jhp = player.get_hp() + bhp = enemy.get_hp() + liste.reverse() + joueur = liste[0] + bot = liste[1] + if joueur == 'attaquant' and jhp > 0 and bhp > 0: + tour(joueur, bot) + player.affiche_caracteristiques() + enemy.affiche_caracteristiques() + jeu(joueur, bot) + elif bot == 'attaquant' and jhp > 0 and bhp > 0: + tour(bot, joueur) + player.affiche_caracteristiques() + enemy.affiche_caracteristiques() + jeu(joueur, bot) + elif player.get_hp() > 0: + player.change_exp(1) + print("\n VICTOIRE!", "\nvous avez gagné le combat! et remporté 1 point d'experience!") joueur = Personne('joueur', 'guerrier') bot = Personne('bot', 'voleur') else: - print('vous avez perdu!') + enemy.change_exp(1) + print("\n DEFAITE!", "\nvous avez perdu!") joueur = Personne('joueur', 'guerrier') bot = Personne('bot', 'voleur') def choix(): - n = input("quel est le nom de votre personnage? :") - classe = input("appuyez sur: \n A pour guerrier, \n Z pour mage, \n E pour voleur, \n R pour elfe \n").upper() + n = input("\nquel est le nom de votre personnage? :") + classe = input("\nappuyez sur: \n A pour guerrier, \n Z pour mage, \n E pour voleur, \n R pour elfe \n").upper() if classe == "A": return Personne(n, "guerrier") if classe == "Z": @@ -124,5 +204,15 @@ def choix(): if classe == "R": return Personne(n, "elfe") +def rand(): + name = ["Darius", "Garen", "Zac", "Ashe", "Elise", "Gwen"] + cat = ["guerrier", "mage", "voleur", "elfe"] + name_r = random.choice(name) + cat_r = random.choice(cat) + return Personne(name_r, cat_r) -joueur = choix() \ No newline at end of file +joueur = choix() +player = joueur +bot = rand() +enemy = bot +jeu(joueur, bot) \ No newline at end of file