fork download
  1. import tkinter as tk
  2. import random
  3.  
  4. # Создаем окно
  5. root = tk.Tk()
  6. root.title("Анимация сердечек")
  7.  
  8. # Настройка холста
  9. canvas = tk.Canvas(root, width=400, height=400, bg='white')
  10. canvas.pack()
  11.  
  12. def draw_heart(x, y, size, color):
  13. """Рисует сердце"""
  14. points = [
  15. x, y + size,
  16. x + size / 2, y,
  17. x + size, y + size,
  18. x + size / 2, y + size / 2,
  19. x, y + size
  20. ]
  21. canvas.create_polygon(points, fill=color, outline='red')
  22.  
  23. def animate():
  24. """Создает анимацию сердец"""
  25. global canvas # Используем глобальную переменную холста
  26. canvas.delete('all') # Очищаем холст каждый цикл (если нужно удаление предыдущих сердец)
  27.  
  28. for _ in range(random.randint(1, 5)): # Генерируем случайное количество сердец за раз
  29. x = random.randint(0, 350)
  30. y = random.randint(0, 350)
  31. size = random.randint(20, 50)
  32. color = random.choice(['pink', 'red', 'purple'])
  33.  
  34. draw_heart(x, y, size, color)
  35.  
  36. root.after(100, animate) # Повторяем через каждые 100 миллисекунд
  37.  
  38. animate()
  39. root.mainloop()
Success #stdin #stdout 0.04s 25788KB
stdin
Standard input is empty
stdout
import tkinter as tk
import random

# Создаем окно
root = tk.Tk()
root.title("Анимация сердечек")

# Настройка холста
canvas = tk.Canvas(root, width=400, height=400, bg='white')
canvas.pack()

def draw_heart(x, y, size, color):
    """Рисует сердце"""
    points = [
        x, y + size,
        x + size / 2, y,
        x + size, y + size,
        x + size / 2, y + size / 2,
        x, y + size
    ]
    canvas.create_polygon(points, fill=color, outline='red')

def animate():
    """Создает анимацию сердец"""
    global canvas  # Используем глобальную переменную холста
    canvas.delete('all')  # Очищаем холст каждый цикл (если нужно удаление предыдущих сердец)
    
    for _ in range(random.randint(1, 5)):  # Генерируем случайное количество сердец за раз
        x = random.randint(0, 350)
        y = random.randint(0, 350)
        size = random.randint(20, 50)
        color = random.choice(['pink', 'red', 'purple'])
        
        draw_heart(x, y, size, color)
    
    root.after(100, animate)  # Повторяем через каждые 100 миллисекунд

animate()
root.mainloop()