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.
Результат роботи продемонструйте вчителю.
Немає коментарів:
Дописати коментар