Mundo em Python

Feudo de Terra

from tkinter import *

feudo_de_terra = {
"Rei": {
"título": "Rei / Rainha",
"território": "Reino",
"função": "Soberano máximo; concede terras aos duques em troca de lealdade e apoio militar.",
"vassalos": [
{
"Duque": {
"título": "Duque / Duquesa",
"território": "Ducado",
"função": "Controla grandes regiões (ducados); administra justiça e defesa; pode conceder partes aos condes.",
"vassalos": [
{
"Conde": {
"título": "Conde / Condessa",
"território": "Condado",
"função": "Governa partes menores do ducado; supervisiona impostos e mantém a ordem local.",
"vassalos": [
{
"Cavaleiro": {
"título": "Cavaleiro / Barão",
"território": "Senhorio (Feudo menor)",
"função": "Recebe pequenas terras em troca de serviço militar; protege aldeias e camponeses.",
"vassalos": [
{
"Camponeses / Servos": {
"função": "Trabalham a terra, pagam tributos e recebem protecção.",
"posse": "Não possuem a terra, apenas o direito de uso."
}
}
]
}
}
]
}
}
]
}
}
]
}
} # Função para mostrar informações conforme a escolha
def mostrar_info(*args):
escolha = var.get()
texto = ""

if escolha == "Reino":
dados = feudo_de_terra["Rei"]
texto = f"Título: {dados['título']}\n\nFunção: {dados['função']}"
elif escolha == "Ducado":
dados = feudo_de_terra["Rei"]["vassalos"][0]["Duque"]
texto = f"Título: {dados['título']}\n\nFunção: {dados['função']}"
elif escolha == "Condado":
dados = feudo_de_terra["Rei"]["vassalos"][0]["Duque"]["vassalos"][0]["Conde"]
texto = f"Título: {dados['título']}\n\nFunção: {dados['função']}"
elif escolha == "Senhorio (Feudo menor)":
dados = feudo_de_terra["Rei"]["vassalos"][0]["Duque"]["vassalos"][0]["Conde"]["vassalos"][0]["Cavaleiro"]
texto = f"Título: {dados['título']}\n\nFunção: {dados['função']}"
else:
texto = "Selecione um território para ver as informações."

texto_saida.config(text=texto) # Interface Tkinter
root = Tk()
root.geometry("700x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Feudo de Terra") # Título
titulo = Label(text="Feudo de Terra",
font=("Arial", 28, "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.25, rely=0.05) # Subtítulo
texto_sub1 = Label(text="Escolha o território:",
font=("Arial", 18, "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.2, rely=0.25) # Dropdown
var = StringVar()
dropDownList = ["Reino", "Ducado", "Condado", "Senhorio (Feudo menor)"]
dropdown = OptionMenu(root, var, *dropDownList)
var.set(dropDownList[0])
dropdown.place(relx=0.55, rely=0.26,relwidth=0.4)
dropdown.config(background='#09A3BA', foreground="#FFFFFF",font=("Arial", 15, "bold"))
dropdown["menu"].config(background='#09A3BA', foreground="#FFFFFF",font=("Arial", 16, "bold")) # Ligação da função
var.trace("w", mostrar_info) # Texto de saída
texto_saida = Label(root, text="", justify=LEFT,
wraplength=400, bg="#103030", fg="white",
font=("Arial", 18))
texto_saida.place(relx=0.15, rely=0.7, anchor="w") # Inicializar
mostrar_info() root.mainloop()
0