|
@ -5,6 +5,7 @@ class Personne: |
|
|
self.__nom = nom |
|
|
self.__nom = nom |
|
|
self.__xp = 1 |
|
|
self.__xp = 1 |
|
|
self.__cat = cat |
|
|
self.__cat = cat |
|
|
|
|
|
self.__pot = 2 |
|
|
if self.__cat == 'guerrier': |
|
|
if self.__cat == 'guerrier': |
|
|
self.__hp = 20 |
|
|
self.__hp = 20 |
|
|
elif self.__cat == 'mage': |
|
|
elif self.__cat == 'mage': |
|
@ -28,8 +29,8 @@ class Personne: |
|
|
elif self.get_cat() == 'elfe': |
|
|
elif self.get_cat() == 'elfe': |
|
|
self.__coefAtq = 8 |
|
|
self.__coefAtq = 8 |
|
|
if self.get_cat() == 'guerrier': |
|
|
if self.get_cat() == 'guerrier': |
|
|
self.__coefAtq = 8 |
|
|
self.__coefDef = 8 |
|
|
if self.get_cat() == 'mage': |
|
|
elif self.get_cat() == 'mage': |
|
|
self.__coefDef = 7 |
|
|
self.__coefDef = 7 |
|
|
elif self.get_cat() == 'voleur': |
|
|
elif self.get_cat() == 'voleur': |
|
|
self.__coefDef = 9 |
|
|
self.__coefDef = 9 |
|
@ -48,6 +49,9 @@ class Personne: |
|
|
def get_cat(self): |
|
|
def get_cat(self): |
|
|
return self.__cat |
|
|
return self.__cat |
|
|
|
|
|
|
|
|
|
|
|
def get_pot(self): |
|
|
|
|
|
return self.__pot |
|
|
|
|
|
|
|
|
def get_inv(self): |
|
|
def get_inv(self): |
|
|
return self.__inv |
|
|
return self.__inv |
|
|
|
|
|
|
|
@ -82,39 +86,115 @@ class Personne: |
|
|
def affiche_inventaire(self): |
|
|
def affiche_inventaire(self): |
|
|
print('\n votre inventaire: ', self.get_inv()) |
|
|
print('\n votre inventaire: ', self.get_inv()) |
|
|
|
|
|
|
|
|
def tour(joueur, bot): |
|
|
nb_tour = 0 |
|
|
if joueur.jet_attaque() > bot.jet_defense(): |
|
|
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) |
|
|
nb_pdv = (-1) * random.randint(1,8) |
|
|
bot.change_pdv(nb_pdv) |
|
|
bot.change_pdv(nb_pdv) |
|
|
print('\n vous avez infligé ', -nb_pdv, "pts de dégats à l'ennemie!") |
|
|
print("\nvous avez remporté le tour...", |
|
|
elif joueur.jet_attaque() < bot.jet_defense(): |
|
|
"\net infligé ", -nb_pdv, "pts de dégats à l'ennemie!") |
|
|
|
|
|
elif dmg < shield: |
|
|
nb_pdv = (-1) * random.randint(1,4) |
|
|
nb_pdv = (-1) * random.randint(1,4) |
|
|
joueur.change_pdv(nb_pdv) |
|
|
joueur.change_pdv(nb_pdv) |
|
|
print('\n vous avez reçu ', -nb_pdv, "pts de dégats de l'ennemie!") |
|
|
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: |
|
|
else: |
|
|
print('\nparade parfaite: aucun des joueur ne perd de points de vie') |
|
|
print('\nparade parfaite: aucun des joueur ne perd de points de vie') |
|
|
|
|
|
|
|
|
|
|
|
liste = ['defenseur', 'attaquant'] |
|
|
|
|
|
|
|
|
def jeu(joueur, bot): |
|
|
def jeu(joueur, bot): |
|
|
jhp = joueur.get_hp() |
|
|
jhp = player.get_hp() |
|
|
bhp = bot.get_hp() |
|
|
bhp = enemy.get_hp() |
|
|
if jhp > 0 and bhp > 0: |
|
|
liste.reverse() |
|
|
|
|
|
joueur = liste[0] |
|
|
|
|
|
bot = liste[1] |
|
|
|
|
|
if joueur == 'attaquant' and jhp > 0 and bhp > 0: |
|
|
tour(joueur, bot) |
|
|
tour(joueur, bot) |
|
|
joueur.affiche_caracteristiques() |
|
|
player.affiche_caracteristiques() |
|
|
bot.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) |
|
|
jeu(joueur, bot) |
|
|
elif joueur.get_hp() > 0: |
|
|
elif player.get_hp() > 0: |
|
|
joueur.change_exp(1) |
|
|
player.change_exp(1) |
|
|
print("vous avez gagné le combat! et remporté 1 point d'experience!") |
|
|
print("\n VICTOIRE!", "\nvous avez gagné le combat! et remporté 1 point d'experience!") |
|
|
joueur = Personne('joueur', 'guerrier') |
|
|
joueur = Personne('joueur', 'guerrier') |
|
|
bot = Personne('bot', 'voleur') |
|
|
bot = Personne('bot', 'voleur') |
|
|
else: |
|
|
else: |
|
|
print('vous avez perdu!') |
|
|
enemy.change_exp(1) |
|
|
|
|
|
print("\n DEFAITE!", "\nvous avez perdu!") |
|
|
joueur = Personne('joueur', 'guerrier') |
|
|
joueur = Personne('joueur', 'guerrier') |
|
|
bot = Personne('bot', 'voleur') |
|
|
bot = Personne('bot', 'voleur') |
|
|
|
|
|
|
|
|
def choix(): |
|
|
def choix(): |
|
|
n = input("quel est le nom de votre personnage? :") |
|
|
n = input("\nquel 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() |
|
|
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": |
|
|
if classe == "A": |
|
|
return Personne(n, "guerrier") |
|
|
return Personne(n, "guerrier") |
|
|
if classe == "Z": |
|
|
if classe == "Z": |
|
@ -124,5 +204,15 @@ def choix(): |
|
|
if classe == "R": |
|
|
if classe == "R": |
|
|
return Personne(n, "elfe") |
|
|
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() |
|
|
joueur = choix() |
|
|
|
|
|
player = joueur |
|
|
|
|
|
bot = rand() |
|
|
|
|
|
enemy = bot |
|
|
|
|
|
jeu(joueur, bot) |