我正在创建一个基本游戏,可以在时间表上测试您。您处于计时器之下,您的得分将盘点并显示在最后。
我可以运行游戏或运行计时器,但不能同时运行。在玩了30秒钟之后,游戏结束了。
import time
import random
yn = raw_input("Do you wanna play? y/n ")
#passed_time = 0
if yn == "n":
exit()
else:
timer= raw_input ("type start to begin the 30 sec timer -- ")
num1 =int( random.choice(range(1,13))) #generating random numbers
num2 =int( random.choice(range(1,13)))
a = str(num1) #turning into a string for text print
b = str(num2)
#score = 0
real_answer = num1 * num2
print "What is " + a + " x " + b + "?"
user_answer = int(raw_input("answer "))
while user_answer != real_answer:
print "You are wrong, try again "
user_answer = int(raw_input("Try again- "))
if timer == ("start"):
seconds = 5 ##how long the timer should be set to
for i in range (seconds):
time.sleep(1)
print ("time is up")
我希望程序运行30秒,然后停止并显示结果。
答案 0 :(得分:0)
欢迎加入。因此,从长远来看,提及线程的评论可能会更好,但是这种解决方案可能更容易理解。
您将需要包括以下导入:
DataTable.Columns
然后将else语句更改为该语句,在此询问用户是否要玩。这将在游戏开始时获得当前时间:
from datetime import datetime
然后,在while语句中,您将需要使用else:
timer= raw_input ("type start to begin the 30 sec timer -- ")
t1 = datetime.now()
来获取秒数差,并使用另一个delta.total_seconds()
来获取新的当前时间。
datetime.now()
此代码位使用t1开始时间和t2当前时间。检查它们是否已用完时间。您可以在此问题中看到有关此代码的更多信息,可能更容易理解。 https://stackoverflow.com/a/24260054/1898965
但是,这不会像线程处理那样在30秒后立即停止代码。这只是检查您是否每次都问用户新的答案是否已超过30秒。