Я новичок в программировании и начал с изучения некоторых Python. Я подумал, что было бы забавно создать игру, похожую на Typeracer, но только набирая алфавит как можно быстрее. Я использовал Tkinter, чтобы построить для него GUI. Я начал с простой проверки, равен ли ввод пользователя строке, а затем отобразил, что они выиграли, используя этот код:
from tkinter import *
import time
key = "abcdefghijklmnopqrstuvwxyz"
start_time = time.time()
root = Tk()
root.title("ABC Game")
answer = Entry(root, width=50)
answer.grid(row=0, column=0)
def check_answer():
if answer.get() == key:
end_time = time.time()
result_time = round(end_time - start_time, 3)
label_won = Label(root, text="Correct! Your time was: " + str(result_time))
label_won.grid(row=2, column=0)
else:
label_lost = Label(root, text="Incorrect")
label_lost.grid(row=2, column=0)
answer_button = Button(root, text="Submit", command=check_answer)
answer_button.grid(row=1, column=0)
root.mainloop()
Но затем я захотел принять вызов и потребовать, чтобы ввод пользователя был точно равен следующая буква в алфавите, опечатки не допускались.
Я как бы застрял на этом этапе, и моя проблема в том, что я не знаю, как написать код, который проверяет только следующий ввод от пользователя . И если это ожидаемый ввод, сделайте это, иначе сделайте то.
from tkinter import *
import time
alphabet = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m",
"n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]
root = Tk()
root.title = "ABC Game"
game_running = False
#This is the part where I'm stuck, might be faults in the code at other places as well
def key_pressed(event):
global pressed_key
pressed_key = repr(event.char)
n_keys_pressed = 0
for letters in alphabet:
while n_keys_pressed <= 28:
if str(pressed_key) == alphabet[n_keys_pressed]:
n_keys_pressed += 1
print("You hit: " + repr(event.char))
def start_game():
global game_running
game_running = True
start_time = time.time
type_frame = Frame(root)
start_button = Button(root, text="Click me to start the timer", width=50, height=10, command=start_game)
start_button.grid(row=0, column=0)
entry = Entry(root, width=50)
entry.grid(row=1, column=0)
root.mainloop()
Любая помощь или советы приветствуются! Спасибо!