Проблема с Саймоном, говорящим, что игра на Python с использованием Tkinter – игра завершается неправильноPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Проблема с Саймоном, говорящим, что игра на Python с использованием Tkinter – игра завершается неправильно

Сообщение Anonymous »

Я пытался создать код Python, используя tkinter. Логика такова: если кнопка 1 будет нажата в течение 2 секунд, игра будет окончена. Если кнопка 2 не будет нажата в течение 2 секунд, игра будет окончена. Но проблема в том, что когда я нажимал кнопку2 в течение 2 секунд, игра отображалась окончена. Я пытался разобраться в проблеме, но не смог. Код приведен ниже.

Код: Выделить всё

from tkinter import *
import tkinter.font as font
import random
root=Tk()

root.title("Simon says")
root.geometry("1366x768")

font1 = font.Font(family="Serif", size=20, weight="bold")
font2 = font.Font(family="Serif", size=13, weight="bold")
font3 = font.Font(family="Serif", size=30, weight="bold")

a0=Label(root,text="",fg="green",font=font1)
button1=Button(root,text="click",fg="green",bg="#FFD700",font=font2,command=lambda: button1_click())
button2=Button(root,text="click",fg="green",bg="#FFD700",font=font2,command=lambda: button2_click())

def clear_widgets():
for widget in root.winfo_children():
if widget != output:
widget.pack_forget()
output=Label(root,font=font2)

button1_pressed=0
button2_pressed=0

def button1_click():
global button1_pressed
button1_pressed=1
clear_widgets()
game_over=Label(root,text="Game over",font=font3,fg="red")
game_over.pack()

def button2_click():
global button2_pressed
button2_pressed=1
loop()

def loop():
global button1_pressed
global button2_pressed
button1_pressed = 0
button2_pressed = 0
a = random.randint(1,2)
if a==1:
a0.config(text="Simon doesn't say,click")
a0.pack()
button1.pack()
button2.pack_forget()
root.after(2000,lambda: check_button1())
else:
a0.config(text="Simon says,click")
a0.pack()
button2.pack()
button1.pack_forget()
root.after(2000, lambda: check_button2())

def check_button1():
if button1_pressed==0:
loop()
def check_button2():
if button2_pressed==0:
clear_widgets()
game_over = Label(root, text="Game over", font=font3, fg="red")
game_over.pack()
loop()
root.mainloop()
Вывод: надеюсь, кто-нибудь мне поможет.
Я пытался разобраться в проблеме, но не смог. Я вставил код в Chatgpt. Чатгпт не смог решить. Я ожидал, что компьютер скажет: щелкать или не щелкать. Если он говорит «щелкнуть», мне нужно нажать в течение 2 секунд, иначе игра будет окончена. Если там написано не нажимать, нажатие приведет к завершению игры. Если на нее не нажать в течение 2 секунд, цикл продолжится.

Подробнее здесь: https://stackoverflow.com/questions/790 ... ing-incorr
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»