2017-11-29 2 views
-1

저는 Python을 처음 접했고 txt 파일에 질문/답변을 연결하고 높은 점수를 저장하는 퀴즈를 만들었습니다. 내가 질문에 대한 시간 제한을 설정하려는 파이썬으로 내 게임과 함께 카운트 다운 타이머를 실행하려면 어떻게해야합니까?

파이 게임

를 사용하지 않는 AM

편집는 예를 들어 1 분 동안 대답한다. 나는 카운트 다운에 타이머를 얻는 것을 처리하고 그러나 카운트 다운하고 나의 게임에 그 때 진행한다.

함께 달릴 수있는 방법이 있습니까? , 당신이 원한다면

import linecache 
import sys 
import pickle 
import time 

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') 

def travel(): 
    i = 0 
    countdown() 
    name = input("What is your name: ") 
    q1 = linecache.getline("travel.txt", 1) 
    a1 = linecache.getline("travel.txt", 2) 
    b1 = linecache.getline("travel.txt", 3) 
    c1 = linecache.getline("travel.txt", 4) 
    print("\n", q1, a1, b1, c1) 
    q = input("Answer: ") 
    if q == "b": 
     print("Correct! You've scored 1 point.") 
     i += 1 
    else: 
     print("Wrong answer buddy, 0 points.") 
+0

당신은'Thread' 모듈을 사용할 수 있습니다 – AJ123

+0

어떻게 작동합니까? –

+0

나는 백그라운드에서 프로 시저를 실행한다고 생각하지만 확실하지는 않습니다. 많이 사용하지 않았습니다. – AJ123

답변

1

:

여기 내 코드 (물론 상위 비트)의 ... 나는 while 루프에 대해 생각하지만 그것은 단지 그것을 그래서 내가 잘못했다 같은데요 엉망 이 기능을 사용하려면 threading.Thread을 사용할 수 있습니다.

참고 다음 코드를 main_game()이 시작된 후이 예에서

import threading 
import time  

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") 
    # add some function which stops the game, for example by changing a variable to false (which the main thread always checks) 
    # or some other method like by checking count_thread.is_alive() 

def main_game(): 
    count_thread = threading.Thread(None, countdown) 
    # do game things 

print("You're out of time") 60 초를 일어날 것이다, 그러나 동시에 # do game things에서 코드가 실행됩니다. 구현할 필요가있는 것은 count_thread 자체가 게임을 죽이는 방법이거나 스레드가 아직 살아 있는지 여부를 확인하고 그렇지 않으면 종료하는 것입니다.

관련 문제