Mundo em Python

Tarot Completo

import random
from tkinter import *
from tkinter import scrolledtext tarot = {
# Arcanos Maiores
"O Louco": "Novos começos, espontaneidade, aventura, liberdade, fé no futuro.",
"O Mago": "Vontade, iniciativa, criatividade e poder pessoal.",
"A Sacerdotisa": "Intuição, sabedoria interior, paciência e mistério.",
"A Imperatriz": "Fertilidade, amor, abundância, natureza e beleza.",
"O Imperador": "Autoridade, disciplina, estabilidade e estrutura.",
"O Hierofante": "Tradição, ensino, sabedoria espiritual e valores morais.",
"Os Amantes": "Relações, escolhas importantes, união e harmonia.",
"A Carruagem": "Determinação, conquista, foco e progresso.",
"A Força": "Coragem, compaixão, autocontrolo e domínio interior.",
"O Eremita": "Busca interior, introspeção, solidão e sabedoria.",
"A Roda da Fortuna": "Destino, ciclos, mudanças inesperadas e sorte.",
"A Justiça": "Equilíbrio, verdade, responsabilidade e consequências.",
"O Enforcado": "Perspetiva diferente, rendição, sacrifício e reflexão.",
"A Morte": "Transformação, renascimento, fim de um ciclo, libertação.",
"A Temperança": "Equilíbrio, harmonia, paciência e cura.",
"O Diabo": "Tentação, vício, materialismo e limitações autoimpostas.",
"A Torre": "Rutura, mudança súbita, revelação e libertação.",
"A Estrela": "Esperança, inspiração, fé, calma e renovação.",
"A Lua": "Sonhos, ilusões, intuição, confusão e segredos.",
"O Sol": "Alegria, sucesso, vitalidade, clareza e otimismo.",
"O Julgamento": "Renascimento, perdão, avaliação e despertar.",
"O Mundo": "Conclusão, realização, completude e sucesso.",
# Arcanos Menores
"Ás de Copas": "Novos começos emocionais, amor, alegria.",
"Dois de Copas": "Parcerias, amizade, união.",
"Três de Copas": "Celebração, amizade, alegria compartilhada.",
"Quatro de Copas": "Reflexão, introspeção, tédio momentâneo.",
"Cinco de Copas": "Perda, desapontamento, aprendizado.",
"Seis de Copas": "Saudades, memórias felizes, nostalgia.",
"Sete de Copas": "Ilusões, escolhas, imaginação.",
"Oito de Copas": "Deixar para trás, buscar algo novo.",
"Nove de Copas": "Satisfação, desejos realizados, gratidão.",
"Dez de Copas": "Felicidade familiar, harmonia, amor.",
"Pajem de Copas": "Mensagens, intuição, criatividade.",
"Cavaleiro de Copas": "Romance, convite, ação emocional.",
"Rainha de Copas": "Compaixão, intuição, cuidado.",
"Rei de Copas": "Equilíbrio emocional, diplomacia, sabedoria."
} # Janela principal
root = Tk()
root.geometry("700x500")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Tarot Completo") titulo = Label(root, text="Tarot Completo",
font=("Arial", 28, "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.25, rely=0.05) def limpar():
resultado_texto.delete(1.0, END) def app():
opcao = opcao_var.get()
if opcao == 1:
qtd = 1
posicoes = ["Mensagem do Dia"]
elif opcao == 2:
qtd = 3
posicoes = ["Passado", "Presente", "Futuro"]
elif opcao == 3:
qtd = 5
posicoes = ["Carta 1", "Carta 2", "Carta 3", "Carta 4", "Carta 5"]
else:
resultado_texto.insert(END, " Escolhe um tipo de tiragem primeiro!\n", "red")
return

cartas = random.sample(list(tarot.keys()), qtd)
resultado_texto.delete(1.0, END)
resultado_texto.insert(END, "A tua leitura de Tarot:\n\n", "green") resultado_texto.tag_config("red", foreground="red")
resultado_texto.tag_config("green", foreground="lightgreen")
resultado_texto.tag_config("normal", foreground="white") for i in range(qtd):
carta_nome = cartas[i]
significado = tarot[carta_nome] reversa = random.choice([True, False])
carta_texto = f"{posicoes[i]}{carta_nome}"
if reversa:
carta_texto += " (invertida)"
significado = (
"⚠️ Aspecto Desafiador/Inverso: " +
significado.replace("amor", "desamor")
.replace("sucesso", "fracasso")
.replace("alegria", "tristeza")
.replace("esperança", "dúvida")
.replace("harmonia", "conflito")
.replace("vitalidade", "cansaço")
.replace("equilíbrio", "desequilíbrio")
.replace("sabedoria", "confusão")
.replace("fé", "insegurança")
.replace("libertação", "prisão")
.replace("progresso", "bloqueio")
.replace("otimismo", "pessimismo")
.replace("abundância", "escassez")
.replace("paciência", "impulsividade")
.replace("realização", "frustração")
) resultado_texto.insert(END, carta_texto + "\n", "red")
resultado_texto.insert(END, significado + "\n\n", "red")
else:
resultado_texto.insert(END, carta_texto + "\n", "green")
resultado_texto.insert(END, significado + "\n\n", "normal") resultado_texto.insert(END, "-" * 50 + "\n", "normal") opcao_var = IntVar() Label(root, text="Escolhe o tipo de tiragem:",
bg="#103030", fg="white", font=("Arial", 12, "bold")).place(relx=0.1, rely=0.25) Radiobutton(root, text="1 Carta (Mensagem do Dia)", variable=opcao_var, value=1,
bg="#103030", fg="white", selectcolor="#204040").place(relx=0.1, rely=0.32) Radiobutton(root, text="3 Cartas (Passado, Presente e Futuro)", variable=opcao_var, value=2,
bg="#103030", fg="white", selectcolor="#204040").place(relx=0.1, rely=0.37) Radiobutton(root, text="5 Cartas (Leitura Completa)", variable=opcao_var, value=3,
bg="#103030", fg="white", selectcolor="#204040").place(relx=0.1, rely=0.42) but1 = Button(root, text="Tirar Cartas", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=app)
but1.place(relx=0.1, rely=0.55, relwidth=0.25, relheight=0.1) but_limpar = Button(root, text="Limpar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=limpar)
but_limpar.place(relx=0.4, rely=0.55, relwidth=0.25, relheight=0.1) but_sair = Button(root, text="Sair", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=root.destroy)
but_sair.place(relx=0.7, rely=0.55, relwidth=0.25, relheight=0.1) resultado_texto = scrolledtext.ScrolledText(root, wrap=WORD, font=("Arial", 12), bg="#204040", fg="white")
resultado_texto.place(relx=0.05, rely=0.7, relwidth=0.9, relheight=0.25)
root.mainloop()
0