2014-07-08 2 views
-1

코드를 실행해도 완벽하게 작동하지만 모든 반응 시간 대신 마지막 반응 시간 만 기록합니다. 나는 틀린 것을 발견하는 것 같다. 나는이와 유사한 다른 프로그램을 구축하고 난 모두를 확인하고 비교 여전히마지막 반응 시간 만 씁니다.

#Imports 
import pygame 
from datetime import datetime 
import time 
import random 
from sys import argv 


#Builds PyGame Screen 
pygame.init() 
screen = pygame.display.set_mode((640, 480)) 

black = (0, 0, 0) 
x = float(2) 

#For Loop 
for turn in range(3): 

    screen.fill((255, 255, 255)) 

    pygame.display.flip() 

#Delay Before The Rest Of The Program Is Runned 
    time.sleep(x) 

#Draws A Black Circle And Starts Runing The Reaction Program 
    letter = random.randint(1, 26) 

    if letter == 1: 
     letter = pygame.K_a 
    elif letter == 2: 
     letter = pygame.K_b 
    elif letter == 3: 
     letter = pygame.K_c 
    elif letter == 4: 
     letter = pygame.K_d 
    elif letter == 5: 
     letter = pygame.K_e 
    elif letter == 6: 
     letter = pygame.K_f 
    elif letter == 7: 
     letter = pygame.K_g 
    elif letter == 8: 
     letter = pygame.K_h 
    elif letter == 9: 
    letter = pygame.K_i 
    elif letter == 10: 
     letter = pygame.K_j 
    elif letter == 11: 
     letter = pygame.K_k 
    elif letter == 12: 
     letter = pygame.K_l 
    elif letter == 13: 
     letter = pygame.K_m 
    elif letter == 14: 
     letter = pygame.K_n 
    elif letter == 15: 
     letter = pygame.K_o 
    elif letter == 16: 
     letter = pygame.K_p 
    elif letter == 17: 
     letter = pygame.K_q 
    elif letter == 18: 
     letter = pygame.K_r 
    elif letter == 19: 
     letter = pygame.K_s 
    elif letter == 20: 
     letter = pygame.K_t 
    elif letter == 21: 
     letter = pygame.K_u 
    elif letter == 22: 
     letter = pygame.K_v 
    elif letter == 23: 
     letter = pygame.K_w 
    elif letter == 24: 
     letter = pygame.K_x 
    elif letter == 25: 
     letter = pygame.K_y 
    elif letter == 26: 
     letter = pygame.K_z 


    font = pygame.font.SysFont("Comic Sans MS", 30) 

    if letter == pygame.K_a: 
     label= font.render("A", 1, black) 
     screen.blit(label, (320, 240)) 
    elif letter == pygame.K_b: 
     label = font.render("B", 1, black) 
     screen.blit(label, (320, 240)) 
    elif letter == pygame.K_c: 
     label = font.render("C", 1, black) 
     screen.blit(label, (320, 240)) 
    elif letter == pygame.K_d: 
     label = font.render("D", 1, black) 
     screen.blit(label, (320, 240))     
    elif letter == pygame.K_e: 
     label = font.render("E", 1, black) 
     screen.blit(label, (320, 240)) 
    elif letter == pygame.K_f: 
     label = font.render("F", 1, black) 
     screen.blit(label, (320, 240)) 
    elif letter == pygame.K_g: 
     label = font.render("G", 1, black) 
     screen.blit(label, (320, 240))    
    elif letter == pygame.K_h: 
     label = font.render("H", 1, black) 
     screen.blit(label, (320, 240)) 
    elif letter == pygame.K_i: 
     label = font.render("I", 1, black) 
     screen.blit(label, (320, 240)) 
    elif letter == pygame.K_j: 
     label = font.render("J", 1, black) 
     screen.blit(label, (320, 240)) 
    elif letter == pygame.K_k: 
     label = font.render("K", 1, black) 
     screen.blit(label, (320, 240)) 
    elif letter == pygame.K_l: 
     label = font.render("L", 1, black) 
     screen.blit(label, (320, 240)) 
    elif letter == pygame.K_m: 
     label = font.render("M", 1, black) 
     screen.blit(label, (320, 240)) 
    elif letter == pygame.K_n: 
     label = font.render("N", 1, black) 
     screen.blit(label, (320, 240)) 
    elif letter == pygame.K_o: 
     label = font.render("O", 1, black) 
     screen.blit(label, (320, 240)) 
    elif letter == pygame.K_p: 
     label = font.render("P", 1, black) 
     screen.blit(label, (320, 240)) 
    elif letter == pygame.K_q: 
     label = font.render("Q", 1, black) 
     screen.blit(label, (320, 240)) 
    elif letter == pygame.K_r: 
     label = font.render("R", 1, black) 
     screen.blit(label, (320, 240)) 
    elif letter == pygame.K_s: 
     label = font.render("S", 1, black) 
     screen.blit(label, (320, 240)) 
    elif letter == pygame.K_t: 
     label = font.render("T", 1, black) 
     screen.blit(label, (320, 240)) 
    elif letter == pygame.K_u: 
     label = font.render("U", 1, black) 
     screen.blit(label, (320, 240)) 
    elif letter == pygame.K_v: 
     label = font.render("V", 1, black) 
     screen.blit(label, (320, 240)) 
    elif letter == pygame.K_w: 
     label = font.render("W", 1, black) 
     screen.blit(label, (320, 240)) 
    elif letter == pygame.K_x: 
     label = font.render("X", 1, black) 
     screen.blit(label, (320, 240)) 
    elif letter == pygame.K_y: 
     label = font.render("Y", 1, black) 
     screen.blit(label, (320, 240)) 
    elif letter == pygame.K_z: 
     label = font.render("Z", 1, black) 
     screen.blit(label, (320, 240)) 

    #Opens Output File And Stores Reaction Times There 
    reactiontimes = open("z output.txt", "w") 
    pygame.display.flip() 
    ReactionStart= datetime.now() 
    reactiontimes.write(str(ReactionStart) + "\n") 
    print (ReactionStart) 

    #Checks to see if key pushed is correct 
    true = True 
    while true: 
     for event in pygame.event.get(): 
      if (event.type == pygame.KEYDOWN): 
       if (event.key == letter): 
        ReactionEnd = datetime.now() 
        reactiontimes.write(str(ReactionEnd) + "\n") 
        print (ReactionEnd) 
        true = False 
    #Calculates Actual Reaction Time Then Delays To Reapeat 
     ReactionTime = ReactionEnd - ReactionStart 
     reactiontimes.write(str(ReactionTime) + "\n") 
     print(ReactionTime) 


    #Closes Document 
    reactiontimes.close() 

    #Checks To See If Program Is Quit 


    while True: 
     for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      pygame.quit() 


# 
# 
+0

쓰기 모드로 파일을 파일에 이미 모든 것을 지워서 열기. – BrenBarn

+0

파일에 추가하려면'reactiontimes = open ("z output.txt", "w")'대신'reactiontimes = open ("z output.txt", "a")'를 사용하십시오. – Adam

+0

/elif – dawg

답변

0

w 콘텐츠 당신이 파일에 추가 할 a을 필요로 할 때마다 덮어 쓰기 작업을 넣은 사람은 아니다.

`open("z output.txt", "a")` 

또한 자동으로 당신을 위해 그들을 종료로 파일을 열 함께 사용해야합니다

`with open("z output.txt", "w") as reactiontimes:` 
관련 문제