Итак, я делаю небольшую скоростную игру. Произвольная буква будет генерироваться функцией, сразу после этого я хочу, чтобы программа подождала несколько секунд. Если ничего не нажимать, вы потеряете, и ваша запись будет отображаться. Если вы нажмете правую клавишу, появится другая случайная буква. Я использовал функцию времени и смоделировал хронометр, который длится в диапазоне (0,2). Это то, что я до сих пор. Он работает, дело в том, что он отображает первую букву, если вы нажмете ее неправильно, вы потеряете (хорошо), но даже если вы нажмете ее правильно, хронометр, очевидно, продолжит работать, поэтому он дойдет до 2, и вы проиграете. Я хочу, чтобы он останавливался и сбрасывался после нажатия клавиши, но я понятия не имею, как это сделать. Я новичок в программировании, поэтому извините, если вы что-то не получите.
import string
import random
import msvcrt
import time
def generarletra():
string.ascii_lowercase
letra = random.choice(string.ascii_lowercase)
return letra
def getchar():
s = ''
return msvcrt.getch().decode('utf-8')
print("\nWelcome to Key Pop It!")
opcion = int(input("\n Press 1 to play OR\n Press 2 for instructions"))
if(opcion == 1):
acum=0
while True:
letra2 = generarletra()
print(letra2)
key = getchar()
for s in range (0,2):
print("Segundos ", s)
time.sleep(2)
acum = acum + 1
if((key is not letra2) or (s == 2)):
print("su record fue de, ", acum)
break
elif(opcion == 2):
print("\n\nWelcome to key pop it!\nThe game is simple, the machine is going to generate a
random\nletter and you have to press it on your keyboard, if you take too\nlong or press the wrong
letter, you will lose.")
else:
print("Invalid option!")
PD: Вам нужно запустить его с симуляцией консоли в вашей IDE или непосредственно из консоли. Библиотека msvcrt по какой-то причине не будет работать внутри IDE.