Тема 5: «Алгоритми та програми». Урок № 60. (До ПР13)
Практична робота № 13. «Створення ігрової програми».
Узагальнення навчального матеріалу з теми
Інтерактивний план-конспект уроку для 8 класу НУШ
🎯 Мета уроку
- Освітня: узагальнити та систематизувати знання учнів з теми "Алгоритми та програми", закріпити вміння створювати ігрові програми з використанням модуля `tkinter`, реалізовувати анімацію об'єктів та обробку подій.
- Розвивальна: розвивати алгоритмічне мислення, логіку, навички розв'язання практичних завдань, творчий підхід до програмування та вміння працювати з графічними об'єктами.
- Виховна: виховувати уважність, відповідальність, самостійність, інтерес до програмування та інформаційних технологій.
✅ Очікувані результати
Після уроку учні зможуть:
- Створювати базові ігрові сценарії, використовуючи графічні можливості `tkinter`.
- Застосовувати цикли та умовні оператори для управління рухом і взаємодією об'єктів.
- Реалізовувати реакцію на події клавіатури та миші.
- Використовувати методи `.move()`, `.create_oval()`, `.create_text()` для малювання та анімації.
- Самостійно розробляти та тестувати прості ігрові програми.
📊 Групи результатів (НУШ)
Візуалізація важливості груп результатів для цього уроку.
Учень / учениця:
ГР1 – працює з інформацією, даними, моделями;
ГР2 – створює інформаційні продукти;
ГР3 – працює в цифровому середовищі;
ГР4 – безпечно та відповідально працює з інформаційними технологіями.
📚 Тип уроку
Урок узагальнення та систематизації знань, практичного застосування вмінь і навичок.
💻 Обладнання та ПЗ
- Персональні комп'ютери з встановленим Python та `tkinter`.
- Середовище розробки (IDLE).
- Проєктор або інтерактивна дошка.
🔗 Міжпредметні зв'язки
- Математика (координатна площина, логіка).
- Фізика (рух, взаємодія об'єктів).
- Англійська мова (назви команд та змінних у програмуванні).
ПОВТОРЮЄМО
Актуалізація опорних знань
- Який модуль Python використовується для створення графічних інтерфейсів та анімацій?
- Що таке `event.keysym` і для чого він використовується?
- Як обчислити центр об'єкта, якщо відомі його координати `x1, y1, x2, y2`?
- Яке призначення методу `.after(час, функція)`? Наприклад, `root.after(час, функція)` .
- Який метод `Canvas` дозволяє залишати "слід" за рухомим об'єктом?
- Чому важливо використовувати `tk.update()` або `root.after()` в анімаціях?

Практичний блок уроку
Питання 1: Множинний вибір (радіокнопки)
Яке призначення змінної `k` у програмі "Відбий кульку"?
Питання 2: Множинний вибір (чекбокси)
Які модулі необхідно імпортувати для реалізації гри "Відбий кульку" у `tkinter`?
Питання 3: Заповнення пропусків
Для створення графічного об'єкта (овалу) на полотні використовується метод canvas.(), а для його переміщення – canvas.().
(Підказка: create_oval, move.)
Питання 4: Зіставлення
Зіставте події з їхнім описом у програмі "Відбий кульку":
Натискання лівої кнопки миші (`<1>`)
Натискання клавіші `Left`
Натискання клавіші `Right`
`k == 0`
Завдання для самостійного виконання
- Додайте до гри "Відбий кульку" можливість збільшення швидкості кульки після кожного відбиття від ракетки.
- Реалізуйте систему підрахунку очок, яка збільшується щоразу, коли кулька відбивається від ракетки.
- Змініть дизайн кульки та ракетки, використовуючи різні форми або зображення.
- Додайте музичний супровід або звукові ефекти для подій (наприклад, відбиття кульки, програш).
Перевірка знань
Натисніть на картку, щоб побачити відповідь.
-
1. Які основні етапи створення ігрової програми в `tkinter`?Імпорт модулів, створення вікна та полотна, визначення об'єктів, обробка подій, цикл анімації, умови завершення гри.
-
2. Як відбувається зміна напрямку руху кульки при зіткненні зі стінками?Шляхом зміни знаку відповідної координати зміщення (`dx` або `dy`) на протилежний.
-
3. Що означає оператор `global k` у функції `clickevent()`?Оператор `global` дозволяє функції `clickevent()` змінювати значення глобальної змінної `k` (лічильника "життів") поза її локальною областю видимості.
-
4. Для чого використовується функція `sleep(0.05)` у циклі анімації?`sleep(0.05)` створює затримку в 0.05 секунди між кадрами анімації, що дозволяє контролювати швидкість руху об'єктів і робить анімацію плавнішою.
-
5. Як визначити зіткнення кульки з ракеткою в програмі?Зіткнення визначається за допомогою перевірки перетину координат кульки та ракетки:
if x > r.winfo_x() and x < r.winfo_x() + 70 and y > 270:. -
6. Яким чином відображається повідомлення "GAME OVER!" у кінці гри?За допомогою методу .create_text()
canvas.create_text(x, y, text="GAME OVER!") ,
де `(x, y)` – координати центру тексту.
Домашнє завдання
1. Теоретична частина:
- Повторити §§ 36-37 (стор. 235-246).
2. Практична частина:
- Виконати практичну роботу № 13 (стор. 247-248).
3. Завдання за бажанням (для закріплення):
- Інтерактивна платформа IZZI (8 клас) до практичної роботи № 13: https://ua.izzi.digital/DOS/1183864/1410274.html

Додаткові матеріали
- Техніка безпеки
- Оцінювання учнів та учениць на уроках інформатики
- Підручник з інформатики для 8 класу (ПР13, стор. 247-248)
- Інтерактивна платформа IZZI (8 клас)
- Інтерактивна платформа IZZI (8 клас) до практичної роботи № 13: https://ua.izzi.digital/DOS/1183864/1410274.html
- Інтерактивна платформа IZZI (8 клас) до підсумкової роботи до розділу № 5: https://ua.izzi.digital/DOS/1183864/1415846.html