PITAVY Mathis
2 months ago
1 changed files with 0 additions and 258 deletions
@ -1,258 +0,0 @@ |
|||
import random |
|||
from tkinter import * |
|||
|
|||
#--GUI |
|||
fenetre = Tk() |
|||
fenetre.title("Baldur's Bait") |
|||
fenetre_width = 1024 |
|||
fenetre_height = 1024 |
|||
ScreenWidth = fenetre.winfo_screenwidth() |
|||
Screenheight = fenetre.winfo_screenheight() |
|||
fenetre.resizable(width=False, height=False) |
|||
fenetre.configure(bg='white') |
|||
|
|||
#photo = PhotoImage(file="bait.png") |
|||
|
|||
canvas = Canvas(fenetre,width=1024, height=1024) |
|||
#canvas.create_image(0, 0, anchor=NW, image=photo) |
|||
canvas.pack() |
|||
|
|||
#bouton |
|||
boutonfermer = Button(fenetre, text='Quitter', command = fenetre.destroy) |
|||
boutonfermer.pack() |
|||
|
|||
def recupere(): |
|||
showinfo("Alerte", entree.get()) |
|||
|
|||
value = StringVar() |
|||
value.set("Valeur") |
|||
entree = Entry(fenetre, textvariable=value, width=30) |
|||
entree.pack() |
|||
|
|||
bouton = Button(fenetre, text="Valider", command=recupere) |
|||
bouton.pack() |
|||
|
|||
#--class |
|||
class Personne: |
|||
def __init__(self, nom, cat): |
|||
self.__nom = nom |
|||
self.__xp = 1 |
|||
self.__cat = cat |
|||
self.__pot = 2 |
|||
if self.__cat == 'guerrier': |
|||
self.__hp = 20 |
|||
elif self.__cat == 'mage': |
|||
self.__hp =20 |
|||
elif self.__cat == 'voleur': |
|||
self.__hp = 30 |
|||
elif self.__cat == 'elfe': |
|||
self.__hp = 22 |
|||
if cat == 'guerrier': |
|||
self.__inv = ['epee', 'potion'] |
|||
elif cat == 'mage': |
|||
self.__inv = ['baton', 'potion'] |
|||
elif cat == 'voleur': |
|||
self.__inv = ['dague', 'potion'] |
|||
elif cat == 'elfe': |
|||
self.__inv = ['arc', 'potion'] |
|||
if self.get_cat() == 'guerrier' or self.get_cat() == 'mage': |
|||
self.__coefAtq = 10 |
|||
elif self.get_cat() == 'voleur': |
|||
self.__coefAtq = 3 |
|||
elif self.get_cat() == 'elfe': |
|||
self.__coefAtq = 8 |
|||
if self.get_cat() == 'guerrier': |
|||
self.__coefDef = 8 |
|||
elif self.get_cat() == 'mage': |
|||
self.__coefDef = 7 |
|||
elif self.get_cat() == 'voleur': |
|||
self.__coefDef = 9 |
|||
elif self.get_cat() == 'elfe': |
|||
self.__coefDef = 10 |
|||
|
|||
def get_nom(self): |
|||
return self.__nom |
|||
|
|||
def get_hp(self): |
|||
return self.__hp |
|||
|
|||
def get_xp(self): |
|||
return self.__xp |
|||
|
|||
def get_cat(self): |
|||
return self.__cat |
|||
|
|||
def get_pot(self): |
|||
return self.__pot |
|||
|
|||
def get_inv(self): |
|||
return self.__inv |
|||
|
|||
def get_coef_atq(self): |
|||
return self.__coefAtq |
|||
|
|||
def get_coef_def(self): |
|||
return self.__coefDef |
|||
|
|||
def set_nom(self, nom): |
|||
self.__nom = nom |
|||
|
|||
def jet_attaque(self): |
|||
return random.randint(1, 20) + (self.get_xp()*self.get_coef_atq()) |
|||
|
|||
def jet_defense(self): |
|||
return random.randint(1, 20) + (self.get_xp()*self.get_coef_def()) |
|||
|
|||
def change_pdv(self, nb_pdv): |
|||
self.__hp += nb_pdv |
|||
|
|||
def change_exp(self, nb_exp): |
|||
self.__xp += nb_exp |
|||
|
|||
def affiche_caracteristiques(self): |
|||
print('caractéristiques de ', self.get_nom(),':', |
|||
'\n catégorie: ', self.get_cat(), |
|||
'\n hp: ', self.get_hp(), |
|||
'\n xp: ', self.get_xp(), |
|||
) |
|||
|
|||
def affiche_inventaire(self): |
|||
print('\n votre inventaire: ', self.get_inv()) |
|||
|
|||
#--main |
|||
nb_tour = 0 |
|||
liste_tour = ['bot', 'joueur'] |
|||
|
|||
#--round |
|||
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'] |
|||
|
|||
#--game |
|||
def jeu(joueur, bot): |
|||
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: |
|||
enemy.change_exp(1) |
|||
print("\n DEFAITE!", "\nvous avez perdu!") |
|||
joueur = Personne('joueur', 'guerrier') |
|||
bot = Personne('bot', 'voleur') |
|||
|
|||
#--player character choice |
|||
def choix(): |
|||
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": |
|||
return Personne(n, "mage") |
|||
if classe == "E": |
|||
return Personne(n, "voleur") |
|||
if classe == "R": |
|||
return Personne(n, "elfe") |
|||
|
|||
#--random bot |
|||
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) |
|||
|
|||
fenetre.mainloop() |
Loading…
Reference in new issue