Когда нажата кнопка отправки, я не могу получить желаемый вывод, который хочу. Он должен отображать изображение и метку, чтобы показать, выиграл он или нет, но это, похоже, не работает
код выглядит следующим образом:
def submit():
ans.sort()
answer.sort()
if ans == answer:
root2.destroy()
root3.destroy()
root4.destroy()
label2.destroy()
label3.destroy()
load=Image.open('win.png')
render=ImageTk.PhotoImage(load)
img=Label(image=render)
img.image=render
img.grid(row=0,column=15)
label4=Label(text="CONGRATULATIONS YOU WIN",font="Times 18")
label4.grid(row=10,column=15,pady=20)
Функция кнопки, используемая для отправки, выглядит следующим образом:
btn30 = Button(root4, text="SUBMIT",bg="Cyan", fg="Black",width=8,height=1,font=('Helvetica','20'),command=lambda:submit)
btn30.grid(column=11, row=18,pady=5)
Весь код программы:
from tkinter import*
import random
from PIL import ImageTk, Image
from collections import Counter
def emptyblocks(word):
global n
global root2
root2 = Frame(window, relief=RIDGE)
root2.grid(row = 5 , column = 1)
n=len(word)
i=0
global button
button = []
for j in range(n):
btni = Button(root2, text=" ",bg="White", fg="Black",width=3,height=1,font=('Helvetica','20'))
btni.grid(column=i+3, row=4, pady=40)
button.append(btni)
i=i+1
global root3
root3 = Frame(window, relief=RIDGE)
root3.grid(row = 8 , column = 1 )
global root4
root4 = Frame(window, relief=RIDGE)
root4.grid(column=11,row=18)
btn01 = Button(root3, text="Q",bg="skyBlue", fg="Black",width=3,height=1,font=('Helvetica','20'),command=lambda: clicked("Q"))
btn01.grid(column=3, row=8,padx=2, pady=2)
btn02 = Button(root3, text="W",bg="skyBlue", fg="Black",width=3,height=1,font=('Helvetica','20'),command=lambda: clicked("W"))
btn02.grid(column=4, row=8,padx=2, pady=2)
btn03 = Button(root3, text="E",bg="skyBlue", fg="Black",width=3,height=1,font=('Helvetica','20'),command=lambda: clicked("E"))
btn03.grid(column = 5, row=8,padx=2, pady=2)
btn04 = Button(root3, text="R",bg="skyBlue", fg="Black",width=3,height=1,font=('Helvetica','20'),command=lambda: clicked("R"))
btn04.grid(column=6, row=8,padx=2, pady=2)
btn05 = Button(root3, text="T",bg="skyBlue", fg="Black",width=3,height=1,font=('Helvetica','20'),command=lambda: clicked("T"))
btn05.grid(column=7, row=8,padx=2, pady=2)
btn06 = Button(root3, text="Y",bg="skyBlue", fg="Black",width=3,height=1,font=('Helvetica','20'),command=lambda: clicked("Y"))
btn06.grid(column=8, row=8,padx=2, pady=2)
btn07 = Button(root3, text="U",bg="skyBlue", fg="Black",width=3,height=1,font=('Helvetica','20'),command=lambda: clicked("U"))
btn07.grid(column=9, row=8,padx=2, pady=2)
btn08 = Button(root3, text="I",bg="skyBlue", fg="Black",width=3,height=1,font=('Helvetica','20'),command=lambda: clicked("I"))
btn08.grid(column=10, row=8,padx=2, pady=2)
btn09 = Button(root3, text="O",bg="skyBlue", fg="Black",width=3,height=1,font=('Helvetica','20'),command=lambda: clicked("O"))
btn09.grid(column=11, row=8,padx=2, pady=2)
btn10 = Button(root3, text="P",bg="skyBlue", fg="Black",width=3,height=1,font=('Helvetica','20'),command=lambda: clicked("P"))
btn10.grid(column=12,row=8,padx=2, pady=2)
btn11= Button(root3, text="A",bg="skyBlue", fg="Black",width=3,height=1,font=('Helvetica','20'),command=lambda: clicked("A"))
btn11.grid(column=4, row=9,padx=2, pady=2)
btn12 = Button(root3, text="S",bg="skyBlue", fg="Black",width=3,height=1,font=('Helvetica','20'),command=lambda: clicked("S"))
btn12.grid(column=5, row=9,padx=2, pady=2)
btn13 = Button(root3, text="D",bg="skyBlue", fg="Black",width=3,height=1,font=('Helvetica','20'),command=lambda: clicked("D"))
btn13.grid(column=6, row=9,padx=2, pady=2)
btn14 = Button(root3, text="F",bg="skyBlue", fg="Black",width=3,height=1,font=('Helvetica','20'),command=lambda: clicked("F"))
btn14.grid(column=7, row=9,padx=2, pady=2)
btn15= Button(root3, text="G",bg="skyBlue", fg="Black",width=3,height=1,font=('Helvetica','20'),command=lambda: clicked("G"))
btn15.grid(column=8, row=9,padx=2, pady=2)
btn16 = Button(root3, text="H",bg="skyBlue", fg="Black",width=3,height=1,font=('Helvetica','20'),command=lambda: clicked("H"))
btn16.grid(column=9, row=9,padx=2, pady=2)
btn17 = Button(root3, text="J",bg="skyBlue", fg="Black",width=3,height=1,font=('Helvetica','20'),command=lambda: clicked("J"))
btn17.grid(column=10, row=9,padx=2, pady=2)
btn18 = Button(root3, text="K",bg="skyBlue", fg="Black",width=3,height=1,font=('Helvetica','20'),command=lambda: clicked("K"))
btn18.grid(column=11, row=9,padx=2, pady=2)
btn19 = Button(root3, text="L",bg="skyBlue", fg="Black",width=3,height=1,font=('Helvetica','20'),command=lambda: clicked("L"))
btn19.grid(column=12, row=9,padx=2, pady=2)
btn20 = Button(root3, text="Z",bg="skyBlue", fg="Black",width=3,height=1,font=('Helvetica','20'),command=lambda: clicked("Z"))
btn20.grid(column=5, row=10,padx=2, pady=2)
btn21 = Button(root3, text="X",bg="skyBlue", fg="Black",width=3,height=1,font=('Helvetica','20'),command=lambda: clicked("X"))
btn21.grid(column=6, row=10,padx=2, pady=2)
btn22 = Button(root3, text="C",bg="skyBlue", fg="Black",width=3,height=1,font=('Helvetica','20'),command=lambda: clicked("C"))
btn22.grid(column=7, row=10,padx=2, pady=2)
btn23 = Button(root3, text="V",bg="skyBlue", fg="Black",width=3,height=1,font=('Helvetica','20'),command=lambda: clicked("V"))
btn23.grid(column=8, row=10,padx=2, pady=2)
btn24 = Button(root3, text="B",bg="skyBlue", fg="Black",width=3,height=1,font=('Helvetica','20'),command=lambda: clicked("B"))
btn24.grid(column=9, row=10,padx=2, pady=2)
btn25 = Button(root3, text="N",bg="skyBlue", fg="Black",width=3,height=1,font=('Helvetica','20'),command=lambda: clicked("N"))
btn25.grid(column=10, row=10,padx=2, pady=2)
btn26 = Button(root3, text="M",bg="skyBlue", fg="Black",width=3,height=1,font=('Helvetica','20'),command=lambda: clicked("M"))
btn26.grid(column=11, row=10,padx=2, pady=2)
btn30 = Button(root4, text="SUBMIT",bg="Cyan", fg="Black",width=8,height=1,font=('Helvetica','20'),command=lambda:submit)
btn30.grid(column=11, row=18,pady=5)
global label3
if word == 'CLOCK':
label3=Label(text="HINT: IT HAS A FACE AND TWO HANDS\n BUT NO ARMS OR LEGS",font="Times 18")
label3.grid(row=2,column=0)
elif word =='BOTTLE':
label3=Label(text="HINT: IT HAS A NECK BUT NO HEAD",font="Times 18")
label3.grid(row=2,column=0)
elif word == 'TOWEL':
label3=Label(text="HINT: IT GETS WETTER AS IT DRIES",font="Times 18")
label3.grid(row=2,column=0)
elif word == 'ELEVEN':
label3=Label(text="HINT: HOW MANY LETTERS ARE THERE IN ALPHABET?",font="Times 18")
label3.grid(row=2,column=0)
elif word == 'AGE':
label3=Label(text="HINT: IT GOES UP BUT NEVER DOWN",font="Times 18")
label3.grid(row=2,column=0)
elif word == 'TABLE':
label3=Label(text="HINT: IT HAS 4 LEGS BUT CAN'T WALK ",font="Times 18")
label3.grid(row=2,column=0)
elif word == 'WINDOW':
label3=Label(text="HINT: THIS INVENTION LETS YOU LOOK\n RIGHT THROUGH THE WALL",font="Times 18")
label3.grid(row=2,column=0)
elif word == 'EGG':
label3=Label(text="HINT: IT HAS TO BE BROKEN BEFORE YOU USE IT",font="Times 18")
label3.grid(row=2,column=0)
elif word == 'SPIDER':
label3=Label(text="HINT: IT BUILD ITS HOUSE WITH EARTHEN STRING\n AND ENSNARES ITS PREY WITH A BITTING STING",font="Times 18")
label3.grid(row=2,column=0)
elif word == 'D':
label3=Label(text="HINT: COMPLETE THE SEQUENCE\n JFMAMJJASON_",font="Times 18")
label3.grid(row=2,column=0)
elif word == 'NEEDLE':
label3=Label(text="HINT: IT HAS ONE EYE BUT CANNOT SEE",font="Times 18")
label3.grid(row=2,column=0)
elif word == 'RELATIONSHIP':
label3=Label(text="HINT: IT IS A SHIP WHICH HAS TWO MATES,\n BUT NO CAPTAIN",font="Times 18")
label3.grid(row=2,column=0)
elif word == 'ENVELOPE':
label3=Label(text="HINT: IT BEGINS WITH 'E' AND ENDS WITH 'E'\n BUT ONLY HAS ONE LETTER",font="Times 18")
label3.grid(row=2,column=0)
elif word == 'EDWIN':
label3=Label(text="HINT: SECOND MAN TO STEP ON MOON",font="Times 18")
label3.grid(row=2,column=0)
elif word == 'DEATH':
label3=Label(text="HINT: SOME TRY TO HIDE,\n SOME TRY TO CHEAT BUT TIME WILL SHOW,\n WE ALWAYS WILL MEET.\n TRY AS YO MIGHT TO GUESS MY NAME ",font="Times 18")
label3.grid(row=2,column=0)
elif word =='SUN':
label3=Label(text="HINT: NEVER RESTING, NEVER STILL, MOVING SILENTLY\n FROM HILL TO HILL,\n IT DOES NOT WALK, RUN OR TROT,\n ALL IS COOL WHERE IT IS NOT ",font="Times 18")
label3.grid(row=2,column=0)
window.mainloop()
def difficulty():
global root1
root1 = Frame(window, relief=RIDGE)
root1.grid(row=4,column=6)
global label1
label1=Label(text="SELECT A DIFFICULTY LEVEL",pady = 30,font = "Times 20")
label1.grid(row=2,column=0,sticky=W)
btn27 = Button(root1, text="EASY",bg="YELLOW", fg="Black",width=8,height=1,bd=10,font=('Helvetica','20'),command=EASY )
btn27.grid(row=4 , column=1,pady=20)
btn28 = Button(root1, text="MEDIUM",bg="Green", fg="Black",width=8,height=1,bd=10,font=('Helvetica','20'),command=MEDIUM)
btn28.grid(row=8 , column=1,pady=20)
btn29 = Button(root1, text="HARD",bg="RED", fg="Black",width=8,height=1,bd=10,font=('Helvetica','20'),command=HARD)
btn29.grid(row=12 , column=1,pady=20)
def EASY():
global chances
chances=8
global words
words=random.choice(easy)
root1.destroy()
label1.destroy()
global label2
label2=Label(text="TOTAL CHANCES : 8",font="Times 18")
label2.grid(row=14,column=0,pady=15)
emptyblocks(words)
def MEDIUM():
global chances
chances=10
global words
words=random.choice(med)
root1.destroy()
label1.destroy()
global label2
label2=Label(text="TOTAL CHANCES : 10",font="Times 18")
label2.grid(row=14,column=0,pady=15)
emptyblocks(words)
def HARD():
global chances
chances=15
global words
words=random.choice(hard)
root1.destroy()
label1.destroy()
global label2
label2=Label(text="TOTAL CHANCES : 15",font="Times 18")
label2.grid(row=14,column=0,pady=15)
emptyblocks(words)
def clicked(alphabet):
global chances
global img
global label4
global label5
global answer
global ans
ans=[]
answer = []
for i in range(n):
c=ord(words[i])
ans.insert(i,c)
j=0
while j<n:
if words[j] == alphabet:
button[j]["text"] = alphabet
d=ord(alphabet)
answer.insert(j,d)
j=j+1
else:
chances=chances-1
txt="CHANCES REMAINING: "+str(chances);
label2.configure(text=txt)
if chances<0:
root2.destroy()
root3.destroy()
root4.destroy()
label2.destroy()
label3.destroy()
load=Image.open('hangman1.png')
render=ImageTk.PhotoImage(load)
img=Label(image=render)
img.image=render
img.grid(row=0,column=15)
label4=Label(text="YOU LOOSE GET READY TO HANG",font="Times 18")
label4.grid(row=10,column=15,pady=20)
def submit():
ans.sort()
answer.sort()
if ans == answer:
root2.destroy()
root3.destroy()
root4.destroy()
label2.destroy()
label3.destroy()
load=Image.open('win.png')
render=ImageTk.PhotoImage(load)
img=Label(image=render)
img.image=render
img.grid(row=0,column=15)
label4=Label(text="CONGRATULATIONS YOU WIN",font="Times 18")
label4.grid(row=10,column=15,pady=20)
window = Tk()
window.title("HANGMAN GAME")
window.geometry("3000x1000")
easy=['CLOCK','BOTTLE','TOWEL','ELEVEN','AGE','WINDOW','TABLE']
med=['EGG','SPIDER','D','NEEDLE']
hard=['RELATIONSHIP','ENVELOPE','EDWIN','DEATH','SUN']
difficulty()
Код сначала выполняется, когда он запрашивает, какой уровень сложности должен быть выбран. Затем в следующем случае он говорит вам вводить буквы в скрытое слово, которое должно быть угадано в заданных шансах. Если шансы меньше нуля, игра заканчивается, но когда я ввожу правильные буквы и пытаюсь отправить письма, функция отправки не выполняется.
Кто-нибудь может мне с этим помочь.
БЛАГОДАРЮ ВАС!!!