【发布时间】:2014-11-18 02:19:03
【问题描述】:
我目前正在制作一个数学游戏,用户有 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.clock()。另外,time.clock() 并没有像你想象的那样做。 -
这个问题有很好的答案:stackoverflow.com/questions/2281850/…
标签: python time timer while-loop