Логотип сайту
Інформатика 8 клас

Тема 5: «Алгоритми та програми». Урок № 60. (До ПР13)

Практична робота № 13. «Створення ігрової програми».
Узагальнення навчального матеріалу з теми

Інтерактивний план-конспект уроку для 8 класу НУШ

🎯 Мета уроку

  • Освітня: узагальнити та систематизувати знання учнів з теми "Алгоритми та програми", закріпити вміння створювати ігрові програми з використанням модуля `tkinter`, реалізовувати анімацію об'єктів та обробку подій.
  • Розвивальна: розвивати алгоритмічне мислення, логіку, навички розв'язання практичних завдань, творчий підхід до програмування та вміння працювати з графічними об'єктами.
  • Виховна: виховувати уважність, відповідальність, самостійність, інтерес до програмування та інформаційних технологій.

✅ Очікувані результати

Після уроку учні зможуть:

  • Створювати базові ігрові сценарії, використовуючи графічні можливості `tkinter`.
  • Застосовувати цикли та умовні оператори для управління рухом і взаємодією об'єктів.
  • Реалізовувати реакцію на події клавіатури та миші.
  • Використовувати методи `.move()`, `.create_oval()`, `.create_text()` для малювання та анімації.
  • Самостійно розробляти та тестувати прості ігрові програми.

📊 Групи результатів (НУШ)

Візуалізація важливості груп результатів для цього уроку.

Учень / учениця:

  • ГР1 – працює з інформацією, даними, моделями;

  • ГР2 – створює інформаційні продукти;

  • ГР3 – працює в цифровому середовищі;

  • ГР4 – безпечно та відповідально працює з інформаційними технологіями.

📚 Тип уроку

Урок узагальнення та систематизації знань, практичного застосування вмінь і навичок.

💻 Обладнання та ПЗ

  • Персональні комп'ютери з встановленим Python та `tkinter`.
  • Середовище розробки (IDLE).
  • Проєктор або інтерактивна дошка.

🔗 Міжпредметні зв'язки

  • Математика (координатна площина, логіка).
  • Фізика (рух, взаємодія об'єктів).
  • Англійська мова (назви команд та змінних у програмуванні).

ПОВТОРЮЄМО

Актуалізація опорних знань

  1. Який модуль Python використовується для створення графічних інтерфейсів та анімацій?
  2. Що таке `event.keysym` і для чого він використовується?
  3. Як обчислити центр об'єкта, якщо відомі його координати `x1, y1, x2, y2`?
  4. Яке призначення методу `.after(час, функція)`? Наприклад, `root.after(час, функція)` .
  5. Який метод `Canvas` дозволяє залишати "слід" за рухомим об'єктом?
  6. Чому важливо використовувати `tk.update()` або `root.after()` в анімаціях?
Знак питання

Джерело: Підручник з інформатики для 8 класу (стор. 246)

Практичний блок уроку

Питання 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)` – координати центру тексту.

Джерело: Підручник з інформатики для 8 класу (стор. 247-248)

Домашнє завдання

1. Теоретична частина:

  • Повторити §§ 36-37 (стор. 235-246).

2. Практична частина:

  • Виконати практичну роботу № 13 (стор. 247-248).

3. Завдання за бажанням (для закріплення):

Учні з книгами або комп'ютерами

Додаткові матеріали