我正在做一个数学游戏,用户有60秒的时间来回答尽可能多的问题。到目前为止,除了计时器应该倒计时到0或倒计时到60,然后停止游戏之外,我的一切都在工作。现在,我将计时器设置为time.clock()以计数60,当计时器小于该值时,游戏将继续运行。但是,由于某些原因,time.clock()没有按我预期的那样工作。我还试着同时运行两个while循环,但也不起作用。有人能帮我吗?只是想在后台运行计时器。
这是我的代码:
score = 0
timer = time.clock()
lives = 3
while timer < 60 and lives > 0:
if score >= 25:
x = random.randint(-100,100)
y = random.randint(-100,100)
answer = int(raw_input("What is %d + %d? " % (x,y)))
if answer == x + y:
print "Correct!"
score += 1
else:
print "Wrong!"
lives -= 1
elif score >= 20:
x = random.randint(-75,75)
y = random.randint(-75,75)
answer = int(raw_input("What is %d + %d? " % (x,y)))
if answer == x + y:
print "Correct!"
score += 1
else:
print "Wrong!"
lives -= 1
elif score >= 15:
x = random.randint(-50,50)
y = random.randint(-50,50)
answer = int(raw_input("What is %d + %d? " % (x,y)))
if answer == x + y:
print "Correct!"
score += 1
else:
print "Wrong!"
lives -= 1
elif score >= 10:
x = random.randint(-25,25)
y = random.randint(-25,25)
answer = int(raw_input("What is %d + %d? " % (x,y)))
if answer == x + y:
print "Correct!"
score += 1
else:
print "Wrong!"
lives -= 1
elif score >= 5:
x = random.randint(-10,10)
y = random.randint(-10,10)
answer = int(raw_input("What is %d + %d? " % (x,y)))
if answer == x + y:
print "Correct!"
score += 1
else:
print "Wrong!"
lives -= 1
elif score >= 0:
x = random.randint(-5,5)
y = random.randint(-5,5)
answer = int(raw_input("What is %d + %d? " % (x,y)))
if answer == x + y:
print "Correct!"
score += 1
else:
print "Wrong!"
lives -= 1
if lives == 0:
print "Oh no! You ran out of lives! Your score was %d." % score
elif timer == 60:
print "Time's up! Your score is %d." % score
else:
print "Goodbye!"
使用
time.time()
,它返回纪元时间(即自1970年1月1日以来的秒数UNIX Time)。您可以将其与开始时间进行比较以获取秒数:你可以让一个定时器在任何时候(即使用户正在输入信息)用信号把你从代码中拉出来,但这有点复杂。一种方法是使用信号库:
这定义了一个引发异常并在超时时调用的函数。现在,您可以将while循环放在try catch块中并设置计时器:
相关问题 更多 >
编程相关推荐