首页 > 解决方案 > 如何添加不需要用户输入的时间限制?

问题描述

我正在为学校编码“挑战”编写一个不太棒的小游戏,我需要为某个动作设置时间限制,同时引入一个按键进入系统。我有一个完整的游戏计时器,但我的游戏是以射击外星人为基础的,我希望在外星人回击之前为每一波设置一个时间限制。另外,我怎样才能为用户输入自动输入?(例如,要射击,您必须按 P,但在游戏中您必须输入 P 然后输入)。

#Main Code

print("An Alien has appeared! They are shooting in 5 seconds!")

#MAIN TIMER START

start = time.time()    
decision = input("Will you shoot (P) or deflect (O)?")
if input == "P":
    decision = shoot
elif input == "p":
    decision = shoot
elif input == "O":
    decision = deflect
elif input == "o":
    decision = deflect

重新开始()

标签: python

解决方案


这是您的问题的可能解决方案。

import sys
from select import select

timeout_sec = 5
available_decisions = ['o', 'p']

print("An Alien has appeared! They are shooting in {} seconds!".format(timeout_sec))
print("Will you shoot (P) or deflect (O)?")

if select( [sys.stdin], [], [], timeout_sec ):
    user_input = sys.stdin.readline().strip()
    user_input = user_input.lower()

    if user_input in available_decisions:
        print("Your choice:", user_input)

        if user_input == "p":
            decision = 'shoot'
        else:
            decision = 'deflect'

else:
    print("You're dead!!")


print("Action: {}".format(decision))

您可以在此处此处阅读有关“sys”和“select”模块的信息。

如果您有更多输入选择,我会使用ENUM。如果输入不正确(数字或其他字符),我也没有输出任何警告,所以你可以多做一点。


推荐阅读