вівторок, 2 квітня 2024 р.

11 клас. Проект-гра "Спіймай бульбашку"

Алгоритм роботи

1.     Запустіть середовище програмування.

2.     Імпортуйте модулі: tkinter, time та з модулю random імпортуйте randint.

3.     Створіть вікно, полотно розміром 800*600, колір полотна задайте на свій розсуд, розташуйте полотно за допомогою методу pack().

4.     Створіть змінну для підрахунку зловлених кульок. Початкове значення змінної дорівнює 0.

5.     Створіть клас Bub, використовуючи конструктор, якій буде містити три змінні (атрибути) із радіусом, координатою х, координатою у та id:

class Bub:

    def __init__(self, id, r, dx, dy):

        self.r = r

        self.dx = dx

        self.dy = dy

        self.id = id

6.     Створіть порожній список.

7.     Створіть функцію create_bubble для створення бульбашок:

def create_bubble():

    r=randint(10, 20)

    x=randint(20,780)

    y=randint(20,480)

    id1=cnv.create_oval(x-r,y-r,x+r,y+r,fill="white")

    dx=randint(-2,2)

    my_bub.append(Bub(id1,r,dx,dx+1)

8.     Створіть функцію move_bubbles для руху бульбашок:

def move_bubbles(): 

    for i in my_bub:

        cnv.move(i.id,i.dx,i.dy)

9.     Створіть функцію get_coords для повернення поточних координат:

def get_coords(id_num):  

    pos=cnv.coords(id_num)

    x=(pos[0]+pos[2])/2

    y=(pos[1]+pos[3])/2

    return x,y

10.                       Створіть функцію clean_up_bubs:

def clean_up_bubs():

                

    for i in my_bub:

        x,y=get_coords(i.id)

        if x<20 or x>780:

            i.dx=-1*i.dx

        if y<20 or y>480:

            i.dy=-1*i.dy

11.                       Створіть подію для перевірки попадання в бульбашку:

def click(event):

    global num

    x=event.x

    y=event.y

    for i in range(len(my_bub)-1):

        x1,y1=get_coords(my_bub[i].id)

        if (abs(x-x1)+abs(y-y1))/2<my_bub[i].r:

            cnv.delete(my_bub[i].id)

            del my_bub[i]

            num=num+1

            tk.title(num)

    return

12.                       Зв’яжи дію «натискання на полотно лівою клавішею миші» з функцією

click:

cnv.bind("<1>", click)

13.                       За допомогою циклу пропишіть умову виникнення бульбашок:

while len(my_bub)<30:

    if randint(1,20)==1:

        create_bubble()

    move_bubbles()

    clean_up_bubs()

    tk.update()

    time.sleep(0.02)

14.                       Сповіщення про програш:

tk.title("CAME OVER Ваш результат - "+str(num))

cnv.unbind("<1>")

15.                       Збережіть роботу у своїй папці із іменем Завдання 1.

16.                       Запустіть програму та переконайтесь що вона працює правильно.

17.                       Результат роботи продемонструйте вчителю.


Немає коментарів:

Дописати коментар

6 клас. Діагностувальна

 Діагностувальна робота  з інформатики 6 клас  ІІ семестр