Mundo em Python

Simulador do Jogo do Tabu (muito ligeiro)

import random
from tkinter import *
cartas_tabu = {
"bilhar": ["mesa", "jogo", "taco", "bola", "buraco"],
"carro": ["automóvel", "volante", "rodas", "motor", "estrada"],
"computador": ["teclado", "ecrã", "processador", "rato", "internet"],
"praia": ["areia", "mar", "sol", "verão", "ondas"],
"livro": ["página", "capa", "história", "autor", "ler"],
"televisão": ["canal", "ecrã", "controlo remoto", "série", "filme"],
"médico": ["hospital", "paciente", "tratamento", "doença", "consultório"],
"fábrica": ["trabalhadores", "máquina", "produção", "produto", "indústria"],
"futuro": ["amanhã", "previsão", "tempo", "anos", "incerto"],
"viagem": ["destino", "avião", "mala", "bilhete", "turismo"],
"montanha": ["neve", "altitude", "subir", "rocha", "escalar"],
"barco": ["mar", "água", "navegar", "porto", "vela"],
"relogio": ["tempo", "minutos", "horas", "ponteiros", "pulso"],
"escritório": ["trabalho", "mesa", "computador", "papéis", "cadeira"],
"navio": ["mar", "viagem", "porto", "cruzeiro", "tripulação"],
"planeta": ["terra", "espaço", "redondo", "gravidade", "órbita"],
"rua": ["cidade", "trânsito", "carros", "pessoas", "passeio"],
"deserto": ["areia", "calor", "seco", "camelo", "dunas"],
"fogo": ["chamas", "calor", "queimar", "fumo", "lenha"],
"jornal": ["notícias", "imprensa", "artigo", "papel", "informação"],
"parque": ["árvores", "natureza", "banco", "relva", "passear"],
"inverno": ["frio", "neve", "chuva", "casaco", "gelado"],
"dinheiro": ["moeda", "nota", "banco", "compra", "riqueza"],
"político": ["governo", "voto", "partido", "eleição", "decisão"],
"supermercado": ["comida", "prateleira", "carrinho", "caixa", "compras"],
"chocolate": ["doce", "café", "sobremesa", "amargo", "barra"],
"reunião": ["trabalho", "pessoas", "agenda", "discussão", "sala"],
"festa": ["música", "dançar", "comida", "convidados", "celebração"],
"polvo": ["tentáculos", "mar", "animal", "oito", "marisco"],
"cereais": ["leite", "pequeno-almoço", "taça", "flocos", "aveia"]
} root = Tk()
root.geometry("400x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Simulador do Jogo") titulo = Label(text="Simulador do Jogo ", font=("Arial", "28", "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.05, rely=0.05) texto_sub1 = Label(text="Palavra", font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.35, rely=0.2)
def remover_acentos(palavra):
acentos = {
'á': 'a', 'ã': 'a', 'â': 'a', 'à': 'a', 'ä': 'a',
'é': 'e', 'ê': 'e', 'ë': 'e',
'í': 'i', 'î': 'i', 'ï': 'i',
'ó': 'o', 'õ': 'o', 'ô': 'o', 'ö': 'o',
'ú': 'u', 'ü': 'u',
'ç': 'c'
}
for acento, letra in acentos.items():
palavra = palavra.replace(acento, letra)
return palavra
def jogo_novo():
palavra, palavras_proibidas = random.choice(list(cartas_tabu.items()))
for widget in root.winfo_children():
if isinstance(widget, Label) and widget != titulo:
widget.destroy()
texto_sub2 = Label(text=palavra, font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub2.place(relx=0.4, rely=0.25)
texto_sub3 = Label(text="Dica:", font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub3.place(relx=0.35, rely=0.4) # Campo de entrada para a dica
dica = StringVar()
Dica_entrada = Entry(textvariable=dica, font=("Arial", "12", "bold"), bg="white", fg="blue", justify='center')
Dica_entrada.place(relx=0.55, rely=0.41, relwidth=0.25)
def verificar_dica():
dica_sem_acento = remover_acentos(dica.get()).lower()
palavra_sem_acento = remover_acentos(palavra).lower()
if dica_sem_acento == palavra_sem_acento:
resultado = Label(text="Parabéns! Adivinhou a palavra.", font=("Arial", "14", "bold"), bg="#103030",
fg="#49e3e3")
resultado.place(relx=0.15, rely=0.65)
else:
for palavra_proibida in palavras_proibidas:
if remover_acentos(palavra_proibida).lower() in dica_sem_acento:
resultado = Label(text=f"Erro! Não pode usar a palavra:\n'{palavra_proibida}'.\n Tente novamente.",
font=("Arial", "14", "bold"), bg="#103030", fg="#49e3e3")
resultado.place(relx=0.15, rely=0.5)
break
else:
resultado = Label(text="A dica não é a palavra.\nTente novamente.", font=("Arial", "14", "bold"),
bg="#103030", fg="#49e3e3")
resultado.place(relx=0.15, rely=0.5)
but_verificar = Button(text="Verificar Dica", bd=2, bg='#107db2', fg='white', font=('verdana', 12, 'bold'),
command=verificar_dica)
but_verificar.place(relx=0.1, rely=0.8, relwidth=0.4, relheight=0.1) but1 = Button(text="Novo Jogo", bd=2, bg='#107db2', fg='white', font=('verdana', 12, 'bold'), command=jogo_novo)
but1.place(relx=0.1, rely=0.9, relwidth=0.3, relheight=0.1)
root.mainloop()
0