Розробка уроку — практичної роботи

Тема: рух об’єктів: імітація руху об'єктів та моделювання гри мовою програмування Python.

Мета: сформувати предметні компетенції щодо технологій імітації руху та моделювання гри.

Учень повинен пояснювати:

Учень повинен вміти:

Обладнання: комп'ютери з встановленими ОС та інтегрованим середовищем програмування Python, (дана) інструкція.

Структура уроку

  1. Організаційний момент.
  2. Актуалізація опорних знань.
  3. Інструктаж з ТБ.
  4. Вироблення практичних умінь і навичок.
  5. Закріплення вивченого матеріалу.
  6. Підбиття підсумків уроку.
  7. Домашнє завдання.

Хід уроку

1. Організаційний момент
Вітання з класом. Перевірка присутності і готовності учнів до уроку. Мотивування учнів: Чи легко створити хоча б простеньку комп'ютерну гру? Сьогодні ми спробуємо це зробити на прикладі гри Пінг-Понг.

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

Дати тлумачення частинам коду, що використовують бібліотеку tkinter і порівняти з очікуваним:

3. Інструктаж з ТБ
4. Вироблення практичних умінь і навичок


Для створення ігор зазвичай використовують спеціальні бібліотеки. Наприклад, Pygame, що містить подвійну буферизацію, роботу зі спрайтами тощо. Але на етапі навчання перші некомерційні «ігри» достатньо створити за допомогою лише бібліотеки tkinter. Для початківця простий і зрозумілий tkinter придатніший, ніж складні, хоча й багатші за можливостями спеціалізовані бібліотеки.

Завдання.

  1. Описати порядок створення складових гри Пінг-Понг з відбиванням м'яча від бокових меж ігрового поля для 2 гравців-людей з використанням однієї клавіатури (див. ілюстрацію нижче).

  2. Cтворити й налагодити програму для такої гри.

  3. Код програми записати у файл Ваше_прізвище у теку, вказану вчителем.

Порядок створення складових гри Пінг-Понг бажано створити як результат конкурсу ідей. У поданому нижче очікуваному результаті порядок і нумерація кроків такі самі, що й у демонстраційному розв'язанні.

  1. Задання розмірів об'єктів — значення глобальних змінних: ширини (780) й висоти (400) вікна програми, ширини (10) й висоти (100) прямокутника — зображення ракетки, радіус (30) кола — зображення м'яча.

  2. Створення об'єктів: вікна, полотна, ліній розмітки, круга — зображення м'яча, прямокутників — зображень ракеток.

  3. Опис руху м'ячика у тілі функції move_ball, яку потрібно викликати у тілі функції main. У свою чергу main потрібно викликати через root.after кожні 30 мілісекунд. Задати прирости (20 і 0) координат круга-м'яча між змінами зображень перед описом функцій.

  4. Опис керування ракетками. Спочатку ракетка нерухома. Щойно користувач натискає потрібну клавішу, швидкість змінюється, а ракетка рухається вгору або вниз, але у межах ігрового поля. Коли гравець відпускає клавішу, ракетки знову стає нерухомою. Вставити створену функцію у тіло main.

  5. Опис опрацювання натискання клавіш "w", "s", "Up", "Down", що призводять до змін швидкостей ракеток. Перед описом функції потрібно встановити фокус на Canvas, щоб він реагував на натискання клавіш, після опису функції прив'язати до Canvas створену функцію.

  6. Опис опрацювання відпускання клавіші, що призводять до змін швидкостей ракеток і прив'язування до Canvas створеної функції.

  7. Опис відбивання м'ячика від стінок і ракеток: при зіткненні зі стінкою або ракеткою напрям руху м'ячика змінюється на протилежний. Додатково при ударі об ракетку збільшити абсолютну величину горизонтальної швидкості м'ячика і випадковим чином змінювати вертикальну складову. Для цього попередньо імпортувати модуль random.

  8. Опис обліку очок й виведення рахунку: запровадження змінних для кількостей очок, виведення рахунку, оновлення рахунку.

  9. Вкидання м'яча після зміни рахунку.

  10. Відкриття вікна програми.

5. Закріплення вивченого матеріалу
Обрати чи придумати гру, яку буде створено при виконанні домашнього завдання, узгодити свій вибір з учителем, при потребі обговорити шляхи її програмного втілення.

6. Підбиття підсумків уроку
Виставлення оцінок.

7. Домашнє завдання
Створити комп'ютерну гру, вибрану у класі для домашнього завдання.


Текст упорядкував Бойко Михайло Валерійович, вчитель інформатики Ліцею міжнародних відносин № 51 міста Києва, під час виконання випускної роботи на курсах підвищення кваліфікації з 13.11.2017 по 17.11.2017.

Використані джерела: