我刚接触python,正在尝试创建测验游戏。我想在测验中加入2分钟的倒数计时器,所以当计时器到零时,问题就会停止,并说您没时间了。我也尝试过使用秒表来完成此操作,但无法弄清楚如何终止比赛,因此,如果您知道该怎么做,效果会一样好。
注意:我不使用pygame。许多其他用户在以前的线程中提出过要求。
这是我从其他文档中收集的代码,但是一旦到达2分钟或0分钟,它就不会停止。
def countdown():
t = 60
while t:
mins, secs = divmod(t, 60)
timeformat = '{:02d}:{:02d}'.format(mins, secs)
print(timeformat, end='\r')
time.sleep(1)
t -= 1
print("You're out of time!\n")
sys.exit ("goodbye")
def main_game():
count_thread = threading.Thread(None, countdown)
question_4 = ("question 1?")
option_4 = (" a. 1 \n b. 5 \n c. 3 \n d. 7")
print(question_4)
print(option_4)
answer_4 = input (">")
if answer_4.lower()== "b":
score = score + 100
else:
print("Incorrect")
import time
start1 = time.time()
if start1 >= 120:
import sys
sys.exit
question_a = ("question?")
option_a = (" a. 7 \n b. 8 \n c. 2 \n d. 1")
print(question_a)
print(option_a)
answer_a = input (">")
if answer_a.lower()== "b":
score = score + 100
else:
print("Incorrect")
###rest of questions
end1 = time.time()
两个代码都是我尝试过的两个不同版本。两种代码均无效。底部代码对比赛进行计时,但不会在2分钟后停止。
任何帮助,建议或反馈将不胜感激!
答案 0 :(得分:1)
自从您使用Pygame
。
(按良好的编码标准)您可能拥有的simplest code应该包含pygame.quit()
。像这样:
import pygame, sys
from pygame.locals import *
pygame.init()
DISPLAYSURF = pygame.display.set_mode((400, 300))
pygame.display.set_caption('Hello World!')
while True: # main game loop
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
pygame.display.update()
接着是Python sys.exit
函数。
从Python退出。这是通过引发SystemExit异常来实现的,因此可以使用try语句的finally子句指定的清除操作,并且有可能在外部级别拦截出口尝试。
您可以不带Python线程而直接使用测验游戏,但是如果您打算使用Python线程,则可以从here的快速而肮脏的示例开始。
希望这会有所帮助。您已经可以在pygame在线中找到测验,并可以对其进行修改。