Mundo em Python

Jogo do Preço Certo

from tkinter import *
import random root = Tk()
root.geometry("400x600")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Jogo do Preço Certo")
produtos = {
"Smartphone": 1500,
"TV": 2000,
"Bimby": 700,
"Tablet": 800,
"Portátil": 1200,
"Frigorífico": 1000,
"Máquina de Lavar": 600,
"Monitor": 500,
"Máquina de Secar": 700,
"Máquina de Café Premium": 1100,
"TV OLED": 2500,
"Robot de Cozinha": 900,
"Sistema de Som": 1300,
"Câmara Fotográfica": 1800,
"Drone": 1500,
"Bicicleta Elétrica": 2200,
"Ar Condicionado": 1200
}
titulo = Label(text="Jogo do Preço Certo",
font=("Arial", "28", "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.05, rely=0.05) texto_sub1 = Label(text="Margem de erro:",
font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.05, rely=0.26) texto_sub2 = Label(text="",
font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub2.place(relx=0.55, rely=0.27) texto_sub3 = Label(text="Produto: ",
font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub3.place(relx=0.05, rely=0.43) texto_sub4 = Label(text="",
font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub4.place(relx=0.4, rely=0.44) texto_sub5 = Label(text="Palpite:",
font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub5.place(relx=0.05, rely=0.5) Palpite = StringVar()
Palpite_entrada = Entry(textvariable=Palpite,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Palpite_entrada.place(relx=0.35, rely=0.5, relwidth=0.35)
def margem_erro():
margem = [50, 100, 150, 200]
escolha = random.choice(margem)
mensagem = f"{escolha}€"
texto_sub2.config(text=mensagem) def mostrar_produto():
produto = random.choice(list(produtos.keys()))
texto_sub4.config(text=produto) def verificar_palpite():
try:
palpite = int(Palpite.get())
produto = texto_sub4.cget("text")
if produto:
preco_produto = produtos[produto] margem = int(texto_sub2.cget("text").replace("€", ""))
diferenca = abs(preco_produto - palpite) if preco_produto - margem <= palpite <= preco_produto + margem:
resultado.set(f"Acertaste! Diferença: {diferenca}€")
else:
resultado.set(f"Errou! O preço correto era {preco_produto}€.\n"
f" Diferença: {diferenca}€")
else:
resultado.set("Por favor, mostre um produto primeiro.")
except ValueError:
resultado.set("Palpite inválido, insira um número.")
def limpar():
Palpite_entrada.delete(0, END)
texto_sub2.config(text="")
texto_sub4.config(text="")
resultado.set("") but1 = Button(text="Margem de Erro", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=margem_erro)
but1.place(relx=0.25, rely=0.2, relwidth=0.4, relheight=0.05) but2 = Button(text="Novo Produto", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=mostrar_produto)
but2.place(relx=0.25, rely=0.35, relwidth=0.4, relheight=0.05) but_verificar = Button(text="Verificar Palpite", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=verificar_palpite)
but_verificar.place(relx=0.25, rely=0.55, relwidth=0.4, relheight=0.05) but_limpar = Button(text="Limpar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=limpar)
but_limpar.place(relx=0.25, rely=0.7, relwidth=0.4, relheight=0.05) but_sair = Button(text="Sair", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=root.destroy)
but_sair.place(relx=0.25, rely=0.85, relwidth=0.4, relheight=0.1) resultado = StringVar()
resultado_texto = Label(textvariable=resultado,
font=("Arial", 12, "bold"), bg="#cfe2f3")
resultado_texto.place(relx=0.05, rely=0.8, relwidth=0.9, relheight=0.15) root.mainloop()
0