Browse Source

programme fini(maison) reste interface

master
mathis 1 week ago
parent
commit
d79c6eb4b4
  1. 142
      jeu de rôle.py

142
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
@ -82,39 +86,115 @@ class Personne:
def affiche_inventaire(self):
print('\n votre inventaire: ', self.get_inv())
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')
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')
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()
player = joueur
bot = rand()
enemy = bot
jeu(joueur, bot)
Loading…
Cancel
Save