import random
from tkinter import *
treinos = {
"Peito": {
"Iniciante": [("Flexão de braço", 3, 12), ("Supino reto com halteres", 3, 10),
("Crucifixo com halteres", 3, 12),
("Supino com barra", 3, 10), ("Flexão com joelhos no chão", 3, 15)],
"Intermediário": [("Supino reto com barra", 4, 8), ("Supino inclinado com halteres", 4, 10),
("Cross-over na polia", 3, 12), ("Flexão de braço com pés elevados", 3, 12),
("Paralelas", 3, 8)],
"Avançado": [("Supino declinado com barra", 4, 6), ("Flexão com carga", 4, 10), ("Peck deck", 4, 8),
("Supino reto com barra", 5, 5), ("Paralelas com peso", 4, 8)]
},
"Pernas": {
"Iniciante": [("Agachamento livre", 3, 15), ("Afundo com peso corporal", 3, 12), ("Panturrilha em pé", 3, 20),
("Leg press leve", 3, 12), ("Agachamento com apoio", 3, 12)],
"Intermediário": [("Leg press", 4, 12), ("Stiff com halteres", 3, 10), ("Agachamento búlgaro", 3, 10),
("Agachamento com barra", 4, 8), ("Pernada na máquina", 4, 15)],
"Avançado": [("Levantamento terra", 4, 8), ("Agachamento profundo com barra", 5, 5),
("Extensão de panturrilha sentado", 4, 15),
("Pular corda", 5, 3), ("Agachamento sumô com barra", 4, 6)]
},
"Braços": {
"Iniciante": [("Rosca direta com halteres", 3, 12), ("Rosca martelo", 3, 12), ("Tríceps no banco", 3, 10),
("Rosca concentrada", 3, 10), ("Tríceps francês", 3, 12)],
"Intermediário": [("Rosca concentrada", 4, 10), ("Tríceps francês com halteres", 4, 10),
("Rosca no cabo", 3, 12),
("Rosca martelo com corda", 4, 12), ("Tríceps mergulho (Paralelas)", 3, 10)],
"Avançado": [("Rosca 21", 3, 21), ("Tríceps corda na polia", 4, 10), ("Rosca scott", 4, 8),
("Rosca spider", 4, 10), ("Tríceps no pulley com corda", 4, 10)]
},
"Cardio": {
"Iniciante": [("Caminhada rápida", 1, 30), ("Polichinelos", 3, 30), ("Corrida leve", 1, 15),
("Cycling leve", 1, 20), ("Subida de escada", 1, 5)],
"Intermediário": [("Corrida moderada", 1, 20), ("Salto na caixa", 4, 20), ("Corda", 3, 3),
("Subida rápida de escada", 1, 5), ("HIIT", 1, 20)],
"Avançado": [("HIIT", 1, 30), ("Burpees", 4, 15), ("Corrida longa", 1, 40), ("Treino de escada", 1, 10),
("Sprint em subida", 1, 5)]
},
"Ombros": {
"Iniciante": [("Elevação lateral com halteres", 3, 12), ("Desenvolvimento militar sentado", 3, 10),
("Elevação frontal com halteres", 3, 12), ("Arnold press", 3, 10), ("Remada alta", 3, 12)],
"Intermediário": [("Desenvolvimento Arnold", 4, 10), ("Face pull na polia", 3, 12),
("Desenvolvimento com barra", 4, 8),
("Elevação lateral com carga", 4, 12), ("Desenvolvimento militar em pé", 4, 8)],
"Avançado": [("Desenvolvimento com barra", 5, 6), ("Elevação lateral com halteres pesados", 4, 10),
("Push press", 4, 6), ("Elevação lateral com carga alta", 5, 10), ("Remada alta com barra", 4, 8)]
},
"Core": {
"Iniciante": [("Prancha estática", 3, 30), ("Abdominal tradicional", 3, 15), ("Elevação de pernas", 3, 12),
("Crunches", 3, 15), ("Prancha lateral (com apoio de joelhos)", 3, 20)],
"Intermediário": [("Prancha lateral", 3, 40), ("Abdominal infra suspenso", 3, 15),
("Abdominal bicicleta", 3, 20),
("Prancha com elevação de pernas", 3, 30), ("Elevação de pernas suspensas", 4, 12)],
"Avançado": [("Prancha com carga", 4, 45), ("Abdominal V", 3, 20), ("Dragon Flag", 3, 5),
("Abdominal com roda", 3, 12), ("L-Sit", 3, 30)]
},
"Full Body": {
"Iniciante": [("Agachamento", 3, 15), ("Flexão de braço", 3, 10), ("Abdominal tradicional", 3, 12),
("Panturrilha em pé", 3, 20), ("Polichinelos", 3, 30)],
"Intermediário": [("Levantamento terra", 4, 10), ("Supino reto com barra", 4, 8),
("Remada curvada com barra", 3, 10), ("Agachamento búlgaro", 4, 10), ("Burpees", 4, 10)],
"Avançado": [("Agachamento profundo com barra", 5, 5), ("Supino declinado com barra", 4, 6),
("Levantamento terra pesado", 4, 6), ("Pull-ups (barra fixa)", 4, 8), ("HIIT (sprints)", 1, 30)]
}
}
# Interface Gráfica
root = Tk()
root.geometry("700x450")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Gerar Treino")
titulo = Label(text="Gerar Treino",
font=("Arial", "28", "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.25, rely=0.05)
texto_sub1 = Label(text="Escolha um grupo muscular:",
font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.05, rely=0.25)
texto_sub2 = Label(text="Escolha de níveis:",
font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub2.place(relx=0.05, rely=0.45)
# Dropdown para escolher o grupo muscular
var = StringVar()
dropDownList = ["Peito", "Pernas", "Braços", "Cardio", "Ombros", "Core", "Full Body"]
dropdown = OptionMenu(root, var, *dropDownList)
var.set(dropDownList[0])
dropdown.place(relx=0.58, rely=0.26, relwidth=0.3)
dropdown.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", "18", "bold"))
dropdown["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", "18", "bold"))
# Dropdown para escolher o nível de dificuldade
var2 = StringVar()
dropDownList2 = ["Iniciante", "Intermediário", "Avançado"]
dropdown2 = OptionMenu(root, var2, *dropDownList2)
var2.set(dropDownList2[0])
dropdown2.place(relx=0.58, rely=0.45, relwidth=0.3)
dropdown2.config(background='#09A3BA', foreground="#FFFFFF",
font=("Arial", "18", "bold"))
dropdown2["menu"].config(background='#09A3BA', foreground="#FFFFFF",
font=("Arial", "18", "bold"))
def limpar():
resultado_texto.delete(1.0, END)
def app():
grupo = var.get()
dificuldade = var2.get()
treino_escolhido = random.sample(treinos[grupo][dificuldade], 3)
mensagem = f"Seu Treino:\n"
for ex, series, rep in treino_escolhido:
mensagem += f"{ex}: {series} séries de {rep} repetições\n"
resultado_texto.delete(1.0, END) # Limpa o texto anterior
resultado_texto.insert(INSERT, mensagem) # Insere o novo texto
but1 = Button(text="Gerar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=app)
but1.place(relx=0.1, rely=0.65, relwidth=0.25, relheight=0.1)
but_limpar = Button(text="Limpar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=limpar)
but_limpar.place(relx=0.4, rely=0.65, relwidth=0.25, relheight=0.1)
but_sair = Button(text="Sair", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=root.destroy)
but_sair.place(relx=0.7, rely=0.65, relwidth=0.25, relheight=0.1)
resultado_texto = Text(root, font=("Arial", 12, "bold"), wrap=WORD, height=6, width=50)
resultado_texto.place(relx=0.05, rely=0.8, relwidth=0.9, relheight=0.15)
scrollbar = Scrollbar(root, command=resultado_texto.yview)
scrollbar.place(relx=0.94, rely=0.8, relheight=0.15)
resultado_texto.config(yscrollcommand=scrollbar.set)
root.mainloop()
Comentários
Enviar um comentário