30秒后如何停止游戏?

时间:2019-01-08 17:41:25

标签: python-2.7

我正在创建一个基本游戏,可以在时间表上测试您。您处于计时器之下,您的得分将盘点并显示在最后。

我可以运行游戏或运行计时器,但不能同时运行。在玩了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秒,然后停止并显示结果。

1 个答案:

答案 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秒。