Mundo em Python

Gerador de Histórias Aleatórias

import random
import tkinter as tk
from tkinter import scrolledtext, messagebox
root = tk.Tk()
root.geometry("700x400")
root.resizable(False, False)
root.config(bg="#103030")
root.title("Gerador de Histórias Aleatórias")
personagens = ["um mago poderoso", "uma cientista curiosa",
"um guerreiro destemido", "um robô perdido", "uma princesa rebelde"]
lugares = ["um castelo assombrado", "um planeta distante",
"as profundezas do oceano", "um laboratório secreto", "uma cidade futurista"]
eventos = ["descobriu um segredo antigo", "precisa derrotar um dragão",
"encontrou um portal misterioso", "inventou uma máquina do tempo", "se perdeu em uma floresta mágica"]
objetos_magicos = ["uma espada encantada", "um livro de feitiços proibidos",
"um cristal do tempo", "um amuleto dos desejos", "uma chave para outra dimensão"]
viloes = ["um feiticeiro das trevas", "um rei tirano", "um alienígena hostil",
"um espírito vingativo", "um monstro subterrâneo"]
missoes = ["resgatar um amigo capturado", "impedir uma grande catástrofe",
"desvendar um enigma milenar", "recuperar um artefato perdido", "sobreviver em um ambiente hostil"]
reviravoltas = ["descobre que o vilão é, na verdade, seu aliado",
"o objeto mágico estava amaldiçoado", "o verdadeiro perigo vem de um traidor inesperado",
"a missão era uma armadilha", "o mundo como conhecemos não é real"]
titulo = tk.Label(root, text="Gerador de Histórias Aleatórias",
font=("Arial", 20, "bold"), bg="#103030", fg="#49e3e3")
titulo.pack(pady=10)
resultado_texto = scrolledtext.ScrolledText(root, font=("Arial", 12),
bg="#cfe2f3", wrap=tk.WORD, width=90, height=10)
resultado_texto.pack(padx=20, pady=10) def gerar_historia():
personagem = random.choice(personagens)
lugar = random.choice(lugares)
evento = random.choice(eventos)
objeto = random.choice(objetos_magicos)
vilao = random.choice(viloes)
missao = random.choice(missoes)
reviravolta = random.choice(reviravoltas) historia = (f"{personagem.capitalize()} estava em {lugar} quando {evento}. \n"
f"Durante sua jornada, encontrou {objeto}, que lhe deu poderes incríveis. \n"
f"No entanto, um novo desafio surgiu: {vilao} apareceu para impedir sua missão de {missoes}. \n"
f"Justo quando tudo parecia resolvido, uma reviravolta aconteceu: {reviravolta}. \n"
f"O destino do mundo agora depende das escolhas desse herói!\n") resultado_texto.delete("1.0", tk.END)
resultado_texto.insert(tk.END, historia)
def limpar():
resultado_texto.delete("1.0", tk.END)
def salvar_historia():
texto = resultado_texto.get("1.0", tk.END).strip()
if texto:
with open("historias_geradas.txt", "a", encoding="utf-8") as arquivo:
arquivo.write(texto + "\n\n")
messagebox.showinfo("Sucesso", "História salva com sucesso! 📜")
else:
messagebox.showwarning("Aviso", "Não há nenhuma história para salvar.") frame_botoes = tk.Frame(root, bg="#103030")
frame_botoes.pack(pady=10) but_gerar = tk.Button(frame_botoes, text="Gerar História", bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=gerar_historia)
but_gerar.grid(row=0, column=0, padx=10) but_limpar = tk.Button(frame_botoes, text="Limpar", bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=limpar)
but_limpar.grid(row=0, column=1, padx=10) but_salvar = tk.Button(frame_botoes, text="Salvar História", bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=salvar_historia)
but_salvar.grid(row=0, column=2, padx=10) but_sair = tk.Button(frame_botoes, text="Sair", bg='#d9534f', fg='white',
font=('verdana', 12, 'bold'), command=root.quit)
but_sair.grid(row=0, column=3, padx=10) root.mainloop()
0