import random
import time
from tkinter import *
from tkinter import messagebox
root = Tk()
root.geometry("700x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Simulador de Dado Mágico")
titulo = Label(text="Simulador de Dado Mágico",
font=("Arial", 28, "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.15, rely=0.05)
texto_sub1 = Label(text="Pergunta:",
font=("Arial", 20, "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.05, rely=0.32)
Pergunta = StringVar()
Pergunta_entrada = Entry(textvariable=Pergunta,
font=("Arial", 12, "bold"),
bg="white", fg="blue", justify='center')
Pergunta_entrada.place(relx=0.25, rely=0.33, relwidth=0.65)
respostas = [
"Sim, com toda a certeza!",
"Sem dúvida alguma!",
"Podes confiar nisso.",
"Provavelmente sim.",
"Acho que sim.",
"Melhor não dizer agora...",
"Concentra-te e pergunta novamente.",
"Não posso prever neste momento.",
"Não contes com isso.",
"As minhas fontes dizem que não.",
"Muito improvável.",
"Definitivamente não!"
]
palavras_proibidas = [
# Autoagressão e suicídio
"suicidio", "suicídio", "matar-me", "matar me", "morte", "morrer",
"tirar a vida", "ferir-me", "ferir me", "magoar-me", "machucar-me", "autoagredir",
# Drogas e álcool
"droga", "drogas", "álcool", "alcool", "bebida", "bêbado", "embriagar",
"beber vinho", "beber cerveja", "ficar bêbado", "ficar embriagado",
# Crimes e violência
"homicidio", "homicídio", "assassinar", "matar alguém", "cometer crime",
"crime", "roubar", "roubo", "bater em", "agredir", "violência", "violento",
"sequestro", "traficar", "trafico", "tráfico", "terrorismo", "arma", "envenenar",
"fazer mal a", "causar dano", "explodir", "incendiar", "vandalizar"
]
def limpar():
resultado_texto.config(text="", bg="#cfe2f3")
Pergunta.set("")
def app(event=None):
pergunta = Pergunta.get().lower().strip()
if pergunta == "":
resultado_texto.config(text="Por favor, escreve uma pergunta primeiro! 🙃")
return
for palavra in palavras_proibidas:
if palavra in pergunta:
resultado_texto.config(
bg="#ffcccc",
text="Desculpa, não posso responder a esse tipo de pergunta.\n"
"A segurança e o bem-estar são muito importantes.\n"
"Em Portugal, se precisares de apoio emocional,\n "
"contacta o SOS Voz Amiga: 213 544 545 (das 15h às 24h)."
)
return
resultado_texto.config(bg="#cfe2f3", text="A consultar o universo...")
root.update()
time.sleep(2)
resposta = random.choice(respostas)
resultado_texto.config(text=f"O Dado Mágico responde:\n\n{resposta}")
def sair():
messagebox.showinfo("Adeus...", "O Dado Mágico agradece a tua visita...\n\nAté à próxima viagem pelo destino!")
root.destroy()
but1 = Button(text="Mostrar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=app)
but1.place(relx=0.1, rely=0.5, 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.5, relwidth=0.25, relheight=0.1)
but_sair = Button(text="Sair", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=sair)
but_sair.place(relx=0.7, rely=0.5, relwidth=0.25, relheight=0.1)
resultado_texto = Label(text="",
font=("Arial", 12, "bold"), bg="#cfe2f3", justify='center')
resultado_texto.place(relx=0.05, rely=0.7, relwidth=0.9, relheight=0.25)
root.bind('<Return>', app)
Pergunta_entrada.focus()
root.mainloop()