我试图在Python 3中制作一个基本的命令行数学游戏。游戏向用户显示一个基本的附加问题,系统等待用户按Enter键,然后显示答案,然后是下一个问题。
我想通过在每回合包含一个超时来向玩家施加压力。如果玩家在3秒钟之前没有按下输入,游戏就会停止并显示一条消息。
问题:如何在3秒后中断input()
。
到目前为止的研究:
说明性代码段:
import signal
import sys
def ask_question():
input("3 + 4 = ?")
def print_answer():
print("7")
def timeout_handler(signum, frame):
print("sorry you ran out of time")
sys.exit()
MAX_TURN_TIME = 3
ask_question()
signal.signal(signal.SIGALRM, timeout_handler)
signal.alarm(MAX_TURN_TIME)
print_answer()
signal.alarm(0)