我正在制作一个简单的Python文本冒险游戏,我想知道一种如何制作一个要求用户输入的简单函数的方法;但是,我希望程序只能在一定时间内接受输入(在我的程序中我使用3秒)。此外,我希望函数在接受输入之前检查输入的正确性。我的尝试如下:
lvl1 = [
'Hi', 'Friend', 'Say', 'Smelly',
'Made', 'Tree', 'Python', 'Freak'
]
one = raw_input("You have 3 seconds to type: " + random.choice(lvl1))
endtime = time.time() + 3
while time.time() <= endtime and lvl1[0:]:
print("Wrong!")
one = raw_input("Try again: ")
print("Correct")
基本上我想要这个代码做的是从用户那里获得一个输入(小于或等于)3秒的持续时间,但在祝贺用户之前,请确保他们的输入与其中一个相同'lvl1'数组中的字符串。
谢谢!
答案 0 :(得分:-1)
你非常接近。您错过的一件事是您需要在提示用户输入之前启动计时器。如果不这样做,程序将在启动计时器之前等待用户输入,这将始终导致“在3秒以内”条件为真。我做的另一个更改是存储随机选择的单词的值,以便您可以显示它,稍后在程序中验证用户的输入是否匹配。
import random
import time
lvl1 = [
'Hi', 'Friend', 'Say', 'Smelly',
'Made', 'Tree', 'Python', 'Freak'
]
word = random.choice(lvl1)
start_time = time.time()
one = raw_input("You have 3 seconds to type: {}\n".format(word))
while time.time() - start_time > 3 or one != word:
print("Wrong!")
start_time = time.time()
one = raw_input("Try again: ")
print("Correct")
希望这有帮助!