from tkinter import *
import time
import random
# Configuração da Janela Principal
root = Tk()
root.geometry("700x250")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Teste de Tempo de Reação")
# Variável Global para armazenar o tempo inicial
tempo_inicial = 0
def mostrar_sinal():
global tempo_inicial
texto_sub1.config(text="AGORA! Clique no botão vermelho!", fg="red")
botao_reagir.config(state=NORMAL) # Habilita o botão de reação
tempo_inicial = time.time() # Registra o tempo inicial
def iniciar_teste():
texto_sub1.config(text="Aguarde o sinal...", fg="#49e3e3")
botao_inicio.config(state=DISABLED)
botao_reagir.config(state=DISABLED)
tempo_espera = random.uniform(2, 5)
root.after(int(tempo_espera * 1000), mostrar_sinal)
def registrar_reacao():
tempo_final = time.time()
tempo_reacao = tempo_final - tempo_inicial
classificacao = classificar_tempo(tempo_reacao)
texto_sub1.config(text=f"Tempo: {tempo_reacao:.3f} s\n{classificacao}", fg="white")
botao_inicio.config(state=NORMAL)
botao_reagir.config(state=DISABLED)
def classificar_tempo(tempo):
if tempo < 0.2:
return "Super Rápido!"
elif tempo < 0.4:
return "Muito Bom!"
elif tempo < 0.6:
return "Médio!"
else:
return "Precisa Melhorar!"
# Interface Gráfica
titulo = Label(root, text="Teste de Tempo de Reação",
font=("Arial", 28, "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.15, rely=0.05)
texto_sub1 = Label(root, text="Clique no botão para iniciar",
font=("Arial", 16, "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.27, rely=0.25)
botao_inicio = Button(root, text="Iniciar", command=iniciar_teste,
font=("Arial", 15,"bold"), bg="blue", fg="white")
botao_inicio.place(relx=0.15, rely=0.45,relwidth=0.25, relheight=0.3)
botao_reagir = Button(root, text="Clique Agora!", command=registrar_reacao,
font=("Arial", 15,"bold"), bg="red", fg="white")
botao_reagir.place(relx=0.55, rely=0.45,relwidth=0.25, relheight=0.3)
botao_reagir.config(state=DISABLED) # O botão começa desativado
root.mainloop()