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

Тема: створення комп’ютерної гри з двома об’єктами, управління одним з яких здійснює людина, а управління іншими здійснюється автоматично за допомогою комп’ютера мовою програмування C#.

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

Учень повинен пояснювати: призначення та спосіб дії програмного таймера.

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

Обладнання: комп’ютери зі встановленими ОС, інтегроване середовище програмування Mono­Develop, бібліотек Cairo і Gtk# 3.0.

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

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

Хід уроку

1. Організаційний момент
Вітання з класом. Перевірка присутності й готовності учнів до уроку.

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

Для створення програмного втілення гри «Пінг-Понг» згадаємо вже знайомі класи й методи:

Для створення програмного втілення гри «Пінг-Понг» візьмемо за основу код прикладу з рухомим текстом.

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


Завдання.

  1. Описати порядок створення складових гри «Пінг-Понг» з відбиванням м'яча від бокових меж ігрового поля і двох ракеток, керування однією з яких здійснює людина, а керування іншою здійснює комп’ютерна програма.

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

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

Порядок створення складових гри «Пінг-Понг»
(бажано отримати як результат конкурсу ідей)

  1. Запозичити код.
  2. Вилучити з коду все зайве — все те, що не буде використано надалі.
  3. Задати значення властивостей класу панелі малювання і змінити вигляд вікна.
  4. Описати у методі OnDrawn області малювання відображення поточного стану гри.
  5. Описати у коді вікна програми опрацювання подій натискання клавіш.
  6. Описати зміну стану гри за 1 крок на початку коду методу OnDrawn області малювання.

Вказівки щодо створення програми (на кожному з кроків 1-6 перевірити можливість компіляції та правильність роботи програми, при потребі змінювати код)

  1. Створити консольний застосунок у середовищі MonoDevelop з таким налаштуванням підключення пакунків

    і замінити створений код програми на код, що створює рухомий текст.

  2. Вилучити з коду зайве — залишити лише зображення зеленого тла.

  3. Задати значення властивостей класу панелі малювання,

    public int
      i=0,   // стан гри
      il=0,  // кількість очок на рахунку програми
      ir=0,  // кількість очок на рахунку гравця
      w=780, // ширина вікна програми та ігрового поля
      h=500, // висота ігрового поля
      c=24,  // висота рядка заголовку вікна програми     
      a=10,  // ширини прямокутника — зображення ракетки
      b=100, // висота прямокутника — зображення ракетки,
      r=10,  // радіус круга — зображення м'яча,
      d_=8,  // приріст ординати ракетки на одне оновлення екрану (3),
      dx,    // приріст поточної величини абсциси  круга за 1 такт оновлення екрану
      dy,    // приріст поточної величини ординати круга за 1 такт оновлення екрану
      dx_=9, // модуль приросту абсциси круга за 1 такт оновлення екрану
      dy_=7, // верхня межа приросту ординати круга за 1 такт оновлення екрану
      x =390,// поточна абсциса центра зображення м'яча
      y =250,// поточна ордината центра зображення м'яча     
      yl=200,// ордината верхнього краю прямокутника-ракетки ліворуч,  керованого програмою
      yr=200;// ордината верхнього краю прямокутника-ракетки праворуч, керованого людиною
    public bool
      up   = false, // потрібно рухати жовтий прямокутник догори
      down = false, // потрібно рухати жовтий прямокутник донизу     
      timer = true;
    змінити вигляд вікна,

    надавши йому розміру w × h — вказано значення властивостей області малювання,

    змінити проміжок часу між послідовними викликами таймера на 50 мс. Порівняти з очікуваним.

  4. Описати у методі OnDrawn області малювання відображення поточного стану гри:

    • ігрове поле темно зеленого кольору "#008000";
    • лінії розмітки і зображення м'яча білого кольору;
    • прямокутники (зображення ракеток):
      • ліворуч — червоного кольору — керований програмою;
      • праворуч — жовтого кольору — керований користувачем;
    • написів (розмiр шрифту 32) для ведення рахунку.

    Порівняти з очікуваним.

  5. Описати у коді вікна програми опрацювання подій натискання клавіш: за допомогю методів OnKeyPressEvent і OnKeyReleaseEvent і властивості Key події змінювати значення властивостей up i down області малювання. Порівняти з очікуваним.

  6. Описати зміну стану гри за 1 крок на початку коду методу OnDrawn області малювання.

    • Якщо номер стану гри 0 (вкидання м'яча у напрямку ліворуч), розташу­вати білий круг у центрі поля, надати йому сталої горизонтальної швидкості ліворуч, випадкової вертикальної швидкості та перейти до стану гри з номером 1.

    • Якщо номер стану гри 1 (рух м'яча):

      • перемістити прямокутники:
        • червоний розташувати так, щоб його середина була на рівні центра білого круга;
        • жовтий перемістити згідно зі значеннями властивостей up i down;

      • надати координатам центра круга приростів;

      • врахувати можливість відбивання від горизонтальних меж поля:
        • складова швидкості по вертикалі змінює напрям на протилежний;
        • відрізок з кінцями у центрах кругів при русі з відбиванням і без нього перпендикулярний до межі і поділяється нею навпіл;

      • якщо найближча до лівого (правого) краю екрану точка білого круга перетнула білу обмежувальну лінію поза розташуванням прямокутника червоного (жовтого) прямокутника зображення ракетки програми (користувача), збільшити рахунок суперника на 1 у перейти до стану гри з номером 0 (2).

    • Якщо номер стану гри 2 (вкидання м'яча у напрямку праворуч), розташу­вати білий круг у центрі поля, надати йому сталої горизонтальної швидкості праворуч, випадкової вертикальної швидкості та перейти до стану гри з номером 1.

  7. Перевірити правильність роботи програми. У разі потреби змінити код.

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

6. Домашнє завдання
Порівняти створену програму з демонстраційним розв'язанням. Змінити наявну програму, додавши випадковість у вибір величини перемі­щення ракетки, керованої програмою. Інакше кажучи, надати можливість користувачу виграти.


Матеріал упорядкував Олександр Рудик.