Fixer des variables

Résolu/Fermé
Florine - 28 avril 2019 à 22:11
quent217 Messages postés 421 Date d'inscription vendredi 25 septembre 2015 Statut Membre Dernière intervention 1 mars 2024 - 29 avril 2019 à 00:39
Bonjour,
Dans le cadre d'un projet en ISN pour le bac, je fais un jeu d'escape game.
Sur une de mes énigme, le but est de rentrer sur les 7 boutons scroll des nombres différents (correspondant à un nombre de goute pour la potion dans le jeu), puis valider (sur un bouton "Valider") afin de vérifier si les chiffres rentrés sont corrects

Or, je n'arrive pas a fixer les variables de mes boutons scroll et que le bouton "Valider" vérifie si tout les résultats des boutons scrolls sont corrects avant de passer à la page suivante.


Je débute en informatique et je ne sais pas comment faire, pourriez vous m'aider ?


je vous met ci-dessous l'extrait de mon programme correspondant à la page des variables :
from tkinter import* #importer la bibliothèque tkinter
from tkinter.messagebox import*
import pygame
import webbrowser
from time import gmtime,strftime

pygame.init() #initialiser pygame

main=Tk() #Ouvrir une fenêtre 
main.title("Infected World")#donner un nom à la fenêtre, ici le nom du jeu
main.geometry("600x480") #dimension de la fenêtre
main.iconbitmap("épidémie.ico") #Modification de l'icone de la fenêtre
main.configure (bg="dark slate gray")

#Intégrer une bande sonore dès l'ouverture de la fenêtre, qui tourne en boucle
sons_n1=pygame.mixer.Sound("laboratoire.wav")
sons_n1.set_volume(0.2)
sons_n1.play(-1)

#Création d'une cinquième frame
page5=Frame(main,width=600,height=480,bg="dark slate gray")
page5.forget()

#Création d'un label pour l'explication
Labeljauge=Label(page5,text="Vous avez trouvé une recette qui vous semble être celle d'un antidote.\nVous décidez de la suivre à la lettre afin de sortir au plus vite de ce laboratoire.",font=("Stencil",15),fg="white",bg="dark slate gray")
Labeljauge.pack(expand=YES)

#Importation d'une photo
photo5=PhotoImage(file="recette.png").zoom(35).subsample(32)
canvas5=Canvas(page5,width=600,height=450,bd=0,highlightthickness=0,bg="dark slate gray")
canvas5.create_image(300,225,image=photo5)
canvas5.pack(expand=YES)

#Création d'une sixième frame pour le lien hypertexte
page6=Frame(main,width=600,height=200,bg="dark slate gray")
page6.forget()

#Création d'un lien hypertexte vers la page Wiki de Claude François Geoffroy
def recherche(event):
    webbrowser.open_new("https://fr.wikipedia.org/wiki/Claude_Geoffroy_le_Jeune")

link = Label(page6, text="Wikipédia", fg="white", font= ("Stencil",15), cursor="hand2",bg="dark slate gray")
link.pack(side=LEFT)
link.bind("<Button-1>", recherche)

#Création d'une frame et d'un label pour les noms des atomes et les scales
page7=Frame(main)
page7.forget()
Labelatomes=Label(page7,text="U    Sr    Kr    C    Bh    O    Bi",bg="dark slate gray",fg="white",font=15)
Labelatomes.pack(side=TOP)

def sel1():
    global selection1
    selection1="Value="+str(var.get())
     
def sel2():
    global selection2
    selection2="Value="+str(var.get())
     
def sel3():
    global selection3
    selection3="Value="+str(var.get())

def sel4():
    global selection4
    selection4="Value="+str(var.get())

def sel5():
    global selection5
    selection5="Value="+str(var.get())

def sel6():
    global selection6
    selection6="Value="+str(var.get())

def sel7():
    global selection7
    selection7="Value="+str(var.get())

#Création des 7 scales pour choisir le nombre de gouttes par scroll
valeur5 = DoubleVar()
jaune = Scale(page7, variable=valeur5,from_=0, to=10,bg="yellow", command=sel1)
jaune.pack(side=RIGHT)

valeur2 = DoubleVar()
bleu = Scale(page7, variable=valeur2,from_=0, to=10,bg="cyan", command=sel2)
bleu.pack(side=RIGHT)

valeur1 = DoubleVar()
orange = Scale(page7, variable=valeur1,from_=0, to=10,bg="orange", command=sel3)
orange.pack(side=RIGHT)

valeur3 = DoubleVar()
violet = Scale(page7, variable=valeur3,from_=0, to=10,bg="purple", command=sel4)
violet.pack(side=RIGHT)

valeur7 = DoubleVar()
vert = Scale(page7, variable=valeur7,from_=0, to=10,bg="green", command=sel5)
vert.pack(side=RIGHT)

valeur4 = DoubleVar()
rouge = Scale(page7, variable=valeur4,from_=0, to=10,bg="red", command=sel6)
rouge.pack(side=RIGHT)

valeur6=DoubleVar()
rose=Scale(page7,variable=valeur6,from_=0, to=10,bg="pink", command=sel7)
rose.pack(side=RIGHT)


def Validerrecette():
     if selection1.get()==0 and selection2==6 and selection3==0 and selection4==5 and selection5==4 and selection6==6 and selection7==8:
          canvas5.delete()
          page5.destroy()
          page6.destroy()
          page7.destroy()
          pagehorloge.pack()
     else:
          showwarning("Attention, vous avez mal lu la recette ! Tenez-vous vraiment à faire exploser le laboratoire ?")

#Création boutons Valider
Valider1=Button(page7, text="Valider",command=Validerrecette)
Valider1.pack(side=RIGHT)


main.mainloop() #Maintien la fenêtre
A voir également:

1 réponse

quent217 Messages postés 421 Date d'inscription vendredi 25 septembre 2015 Statut Membre Dernière intervention 1 mars 2024 344
28 avril 2019 à 22:31
Bonjour,
les variables que vous avez associés aux Scale (valeur1, etc.) contiennent déjà les valeurs de chaque Scale. Vous n'avez donc pas besoins de stocker ces valeurs dans selection1, etc. Vous pouvez donc supprimer les fonctions sel1, etc. et les command dans les Scale. Dans la fonction Validerrecette, remplacez selections1, etc. par valeur5, etc. (je ne sais pas pourquoi les variables ne sont pas numérotées dans l'ordre mais peu importe).
1
J'ai fait comme vous m'avez dit, ça a déjà débloqué un petit peu parce que désormais le message d'alerte en cas d'erreur s'affiche.
Sauf que même si je met les bons numéros, il m'affiche tout de même le message d'erreur...
0
quent217 Messages postés 421 Date d'inscription vendredi 25 septembre 2015 Statut Membre Dernière intervention 1 mars 2024 344 > Florine
29 avril 2019 à 00:25
Oui effectivement j'ai oublié de préciser : il faut ajouter .get() après chaque valeur comme vous l'avez fait avec
selection1.get()
sauf que du coup ça devient
valeur5.get()
.
0
merci beaucoup ! maintenant ca marche parfaitement !
0
quent217 Messages postés 421 Date d'inscription vendredi 25 septembre 2015 Statut Membre Dernière intervention 1 mars 2024 344 > Florine
29 avril 2019 à 00:39
Super :)
Vous pouvez mettre le sujet en résolu en cliquant en haut à droite de votre premier message.
0