• Предмет: Информатика
  • Автор: valik7981
  • Вопрос задан 4 месяца назад

Завдання. Створити програму-гру, в якій у випадковому місці з'являється
бульбашка
1. Імпортуй графічну бібліотеку tkinter.
from tkinter import *
2. Створи головне вікно root та розмісти команду для відображення вікна після
запуску програми.
root = Tk() # створення головного вікна (завжди називай головне вікно root!)
# команди
root.mainloop() # команда відображення вікна при запуску
3. Задай заголовок вікна «Спіймай бульбашку».
root.title('Спіймай бульбашку')
4. Створи два порожніх фрейми f1 та f2: перший використаємо для інформації
про кількість очків, а другий – для полотна з бульбашками.
f1 = Frame(root)
f1.pack(fill=BOTH)
f2 = Frame(root)
f2.pack(fill=BOTH)
5. У першому фреймі розмісти мітку points_label з текстом «Спіймано», задай
шрифр “Arial 15”.
points_label = Label(f1, text=___, font='Arial 15')
points_label.pack(side=LEFT)
6. Також у першому фреймі поклади мітку points, у якій буде відображатись
кількість очків (за замовчуванням поставимо значення 0).
points = Label(___, text='0', font='Arial 15')
points.pack(side=LEFT)
7. Створи у другому фреймі полотно для малювання шириною та висотою 500
(ширину та висоту визначимо наперед як змінну size).
size = 500
c = Canvas(___, width=size, height=size)
c.pack()
8. Бульбашки повинні бути різного розміру, який буде обиратися програмою
довільним чином з визначених меж. Для цього спершу підключимо модуль
random для генерації випадкових чисел.
from random import *
9. Створи функцію для появи бульбашок.
def balls():
global x, y, r, new_ball
colors = choice(['aqua', 'blue', 'fuchsia', 'green', 'maroon', 'orange', 'pink',
'purple', 'red', 'yellow', 'violet', 'indigo', 'chartreuse', 'lime'])
x = randint(0, size)
y = randint(0, size)
r = randint(10, size/5)
new_ball = c.create_oval(x - r, y - r, x + r, y + r, fill=colors)
root.after(1000, balls)
global означає, що змінні будуть вважатися глобальними (а не локальними),
тобто їх значення збережеться і після завершення роботи функції, і не буде
знищено, як це стається з усіма локальними змінними.
10. Здійсни виклик функції balls. Запусти програму і переконайся, що все
працює коректно.
balls()

Приложения:

Ответы

Ответ дал: vikazhuravska15
0

Ответ: Ваш код містить правильні кроки для створення програми-гри "Спіймай бульбашку". Однак, він не містить функції для спіймання бульбашки, що є головною метою гри. Я запропоную вам додати декілька кроків для реалізації цієї функції:

Додай функцію для перевірки, чи координати курсора миші знаходяться всередині бульбашки. Якщо так, то бульбашка зникає, а на лічильнику очок додається одиниця.

def catch(event):

global points, new_ball

x1 = c.coords(new_ball)[0]

y1 = c.coords(new_ball)[1]

x2 = c.coords(new_ball)[2]

y2 = c.coords(new_ball)[3]

if x1 <= event.x <= x2 and y1 <= event.y <= y2:

c.delete(new_ball)

points['text'] = str(int(points['text']) + 1)

Додай прив'язку функції catch до події "натиснення миші на полотні".

c.bind('<Button-1>', catch)

Після додавання цих кроків ваша програма-гра повинна працювати наступним чином: випадкова бульбашка з'являється на полотні, і гравець має спробувати спіймати її, натиснувши на неї мишкою. Якщо гравець спіймав бульбашку, на лічильнику очок з'являється одиниця, і бульбашка зникає. Якщо гравець не спіймав бульбашку, вона залишається на полотні до наступного спробування. Крім того, програма безперервно генерує нові бульбашки з випадковими координатами та розмірами.

Объяснение:

Вас заинтересует