import tkinter as tk
import random
class FumacaApp:
def __init__(self, root):
self.root = root
self.root.title("Fumo Branco e Negro")
self.canvas = tk.Canvas(root, width=400, height=500, bg="skyblue")
self.canvas.pack()
self.btn_branco = tk.Button(root, text="Fumo Branco", command=lambda: self.emitir_fumaca("white"))
self.btn_branco.pack(side=tk.LEFT, padx=10, pady=10)
self.btn_negro = tk.Button(root, text="Fumo Negro", command=lambda: self.emitir_fumaca("black"))
self.btn_negro.pack(side=tk.RIGHT, padx=10, pady=10)
self.fumacas = []
def emitir_fumaca(self, cor):
self.bloquear_botoes() # desativa os botões
self.fumacas = []
for _ in range(15):
x = random.randint(180, 220)
size = random.randint(20, 40)
fumaca = self.canvas.create_oval(x, 450, x+size, 450+size, fill=cor, outline=cor)
self.fumacas.append((fumaca, random.uniform(-1, 1)))
self.animar_fumaca()
def animar_fumaca(self):
nova_fumaca = []
for fumaca, dx in self.fumacas:
self.canvas.move(fumaca, dx, -2)
x1, y1, x2, y2 = self.canvas.coords(fumaca)
if y2 > 0:
nova_fumaca.append((fumaca, dx))
else:
self.canvas.delete(fumaca)
self.fumacas = nova_fumaca
if self.fumacas:
self.root.after(50, self.animar_fumaca)
def bloquear_botoes(self):
self.btn_branco.config(state="disabled")
self.btn_negro.config(state="disabled")
self.root.after(20000, self.desbloquear_botoes) # 20 segundos
def desbloquear_botoes(self):
self.btn_branco.config(state="normal")
self.btn_negro.config(state="normal")
# Iniciar janela
root = tk.Tk()
app = FumacaApp(root)
root.mainloop()