# Ігрова програма Ловець бульбашок 2
from tkinter import*
from random import*
from tkinter import*
from random import*
tk=Tk()
W=H=400 # розміри полотна
W=H=400 # розміри полотна
canvas=Canvas(tk, width=W, height=H)
canvas.config(bg="Sky Blue");
canvas.pack()
canvas.config(bg="Sky Blue");
canvas.pack()
maxB=10; # За такої бульбашок кількості гра зупиниться
genT=1000 # проміжок часу між появою бульбашок
genT=1000 # проміжок часу між появою бульбашок
class Bub:
number=0; # лічильник бульбашок
clicked=0 # лічильник зловлених бульбашок
def __init__(B):
B.d=40;
B.x=randint(2, W-B.d);
B.y=randint(2, H-B.d)
B.dx=randint(-5, 5);
B.dy=randint(-5, 5)
Bub.number=Bub.number+1
# створення бульбашки
B.id=canvas.create_oval(B.x, B.y, B.x+B.d, B.y+B.d,
fill='blue')
# бульбашка має обробник клацання
canvas.tag_bind(B.id,'<1>',B.on_click)
# і починає рухатися після створення
B.move()
number=0; # лічильник бульбашок
clicked=0 # лічильник зловлених бульбашок
def __init__(B):
B.d=40;
B.x=randint(2, W-B.d);
B.y=randint(2, H-B.d)
B.dx=randint(-5, 5);
B.dy=randint(-5, 5)
Bub.number=Bub.number+1
# створення бульбашки
B.id=canvas.create_oval(B.x, B.y, B.x+B.d, B.y+B.d,
fill='blue')
# бульбашка має обробник клацання
canvas.tag_bind(B.id,'<1>',B.on_click)
# і починає рухатися після створення
B.move()
def move(B):
canvas.move(B.id, B.dx, B.dy)
tk.update()
pos=canvas.coords(B.id)
if len(pos)>0: # якщо кулька не зникла
if pos[0]<2 or pos[2]>W-2:# то відбивається від країв
B.dx=-1*B.dx
if pos[1]<2 or pos[3]>H-2:
B.dy=-1*B.dy
tk.after(100, B.move)
def on_click(B, event):
if Bub.number<maxB: # якщо бульбашок мало
canvas.delete(B.id); # то вилучити бульбашку
Bub.number=Bub.number-1
Bub.clicked=Bub.clicked+1;
tk.title(Bub.clicked)
canvas.move(B.id, B.dx, B.dy)
tk.update()
pos=canvas.coords(B.id)
if len(pos)>0: # якщо кулька не зникла
if pos[0]<2 or pos[2]>W-2:# то відбивається від країв
B.dx=-1*B.dx
if pos[1]<2 or pos[3]>H-2:
B.dy=-1*B.dy
tk.after(100, B.move)
def on_click(B, event):
if Bub.number<maxB: # якщо бульбашок мало
canvas.delete(B.id); # то вилучити бульбашку
Bub.number=Bub.number-1
Bub.clicked=Bub.clicked+1;
tk.title(Bub.clicked)
def play():
if Bub.number<maxB: # якщо бульбашок мало
Bub(); # то створюємо бульбашку
tk.after(genT, play) # продовжуємо створювати
else:
tk.after_cancel(play) # припиняємо створювати
tk.title('Гру закінчено. Ваш результат: '+str(Bub.clicked))
if Bub.number<maxB: # якщо бульбашок мало
Bub(); # то створюємо бульбашку
tk.after(genT, play) # продовжуємо створювати
else:
tk.after_cancel(play) # припиняємо створювати
tk.title('Гру закінчено. Ваш результат: '+str(Bub.clicked))
play()
tk.mainloop()
tk.mainloop()
Комментариев нет:
Отправить комментарий