from tkinter import *
from tkinter import messagebox
dinheiro = 0
MENU = {
"Café": {
"custo": 1.0,
},
"Chá": {
"custo": 1.5,
},
"Sumo": {
"custo": 2.5,
},
"Água": {
"custo": 1.5,
},
"Coca-Cola": {
"custo": 1.0,
}
}
recursos = {
"Café": 20,
"Chá": 20,
"Sumo": 20,
"Água": 20,
"Coca-Cola": 20,
}
def verificar_recursos(escolha_bebida):
if recursos[escolha_bebida] <= 0:
mensagem = f"Desculpe, {escolha_bebida} está esgotado."
messagebox.showinfo("Pedido Confirmado", mensagem)
return False
return True
def deduzir_recursos(escolha_bebida):
recursos[escolha_bebida] -= 1
def processar_transação(bebida, moedas):
sucesso = False
custo_bebida = MENU[bebida]['custo']
if custo_bebida > moedas:
messagebox.showinfo("Pedido Confirmado",
"Desculpe, não é suficiente dinheiro. Dinheiro devolvido.")
return sucesso
elif custo_bebida <= moedas:
sucesso = True
troco = round(moedas - custo_bebida, 2)
messagebox.showinfo("Pedido Confirmado", f"Aqui está {troco} € de troco.")
global dinheiro
dinheiro += custo_bebida
return sucesso
def process_order():
selected_drink = drink_var.get()
if selected_drink:
if verificar_recursos(selected_drink):
try:
inserted_money = float(Dinhero_entrada.get())
except ValueError:
messagebox.showwarning("Entrada Inválida", "Por favor, insira um valor válido de dinheiro.")
return
if processar_transação(selected_drink, inserted_money):
deduzir_recursos(selected_drink)
messagebox.showinfo("Pedido Confirmado", f"Você pediu um {selected_drink}. Aproveite sua bebida!")
else:
messagebox.showwarning("Nenhuma Seleção", "Por favor, selecione uma bebida.")
root = Tk()
root.geometry("400x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Máquina de Bebidas")
# Título
titulo = Label(root, text="Máquina de Bebidas",
font=("Arial", 28, "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.08, rely=0.05)
# Variável para armazenar a seleção da bebida
drink_var = StringVar()
# Rótulo de instrução
Label(root, text="Selecione sua bebida:", font=("Arial", 18, "bold"),
bg="#103030", fg="#49e3e3").place(relx=0.1, rely=0.2)
# Opções de bebidas
drinks = ["Café", "Chá", "Sumo", "Água", "Coca-Cola"]
# Adicionando botões de rádio para cada bebida
for idx, drink in enumerate(drinks):
Radiobutton(root, text=drink, variable=drink_var, value=drink, bg="white", fg="#103030",
font=("Arial", 14)).place(relx=0.35, rely=0.3 + idx*0.07)
# Entrada de dinheiro
Label(root, text="Dinheiro:", font=("Arial", 20, "bold"),
bg="#103030", fg="#49e3e3").place(relx=0.1, rely=0.75)
Dinhero_entrada = Entry(root, font=("Arial", 12, "bold"),
bg="white", fg="blue", justify='center')
Dinhero_entrada.place(relx=0.5, rely=0.75, relwidth=0.35)
Dinhero_entrada.focus()
# Botão para fazer o pedido
Button(root, text="Fazer Pedido", command=process_order, bg="#49e3e3",
fg="#103030", font=("Arial", 14)).place(relx=0.3, rely=0.9)
root.mainloop()
Comentários
Enviar um comentário