一旦玩家在Python游戏中达到设定的时间,如何停止程序

时间:2019-05-23 09:47:00

标签: python python-3.x pygame

我刚接触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分钟后停止。

任何帮助,建议或反馈将不胜感激!

1 个答案:

答案 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在线中找到测验,并可以对其进行修改。