Проект. Рух кругів по вертикалі

# Вправа 12 стор 76
# Проект. Рух кругів по вертикалі
# Програма руху кругів по вертикалі з відбиттям від меж вікна
#
from tkinter import*
from random import*
from time import*

tk=Tk()
canvas=Canvas(tk, width=500, height=400, bg="Sky Blue")
canvas.pack()
#
class Ball:   #
#
    def __init__(self,canvas,x,y,color):
        self.canvas=canvas
        self.id=canvas.create_oval(x,y,x+50,y+50,fill=color)
        self.dy=2
#
    def ruh(self):
        pos=canvas.coords(self.id)
        if pos[1]>348:
            self.dy=-1*self.dy
        if pos[1]<2:
            self.dy=-1*self.dy
#
def q():
    tk.destroy()
#    
b=Button(tk, text="Вихід", command=q)
b.pack(anchor=W)

list_ball=[]  #
colors=["red","orange","yellow","green","blue"]
for i in range(10):         #
    x=randint(10,400)
    y=randint(10,350)
    #
    list_ball.append(Ball(canvas,x,y,colors[i%5]))

while True:     #
    for i in range(len(list_ball)):  #
        list_ball[i].ruh()           #
        canvas.move(list_ball[i].id,0,list_ball[i].dy) #
    tk.update()  #
    sleep(0.02)  #

tk.mainloop()

Завдання
1. Надрукувати програму та виконати її
2. Доповнити код програми коментарями
3. Текс програми та скриншот результату роботи програми надіслати в класрум


Запитання
1. Які атрибути містить клас Ball(...) ?
2. Які методи містить клас Ball(...) ?
3. Як називають метод __init__(...) ?
4. Що є елементами списку list_ball[...] ?
5. З допомогою якого метода заповнюють список list_ball[...] ?
6. Що виконує метод len() ?
7. Яке призначення методу move ?
8, Яку дію виконує метод update()




Комментариев нет:

Отправить комментарий