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

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

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

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

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

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

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

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

Хід уроку

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

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

Дати тлумачення вказівкам мовою Ruby.

require 'ruby2d'             

set title:"Гра «Пінг-понг»",
    background:"#008000",
    width:  780,
    height: 400

r0  = Rectangle.new(x:11, y:22, width: 333, height: 44, z: 0, color: "red")
ball= Image.new("ball.png", x:11, y:22, z:1, width:20, height:20, color:"white")
l=Line.new(x1:11, y1:22,  x2:33, y2:44, width:5, color:'white', z:0)
t0 = Text.new("New", x:11, y:11, z:0, size: 28, font: sf, color:"white")

r = Random.new
y = r.rand(y0..y1)

on :key_held do |e|
  k=e.key
end

update do
end

show

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

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


Для створення ігор зазвичай використовують спеціальні бібліотеки. Наприк­лад, Ruby 2D, знайомство з якою продовжимо на цьому уроці.

Завдання.

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

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

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

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

  1. Задати значення змінних: стану гри (0), ширини (780) й висоти (500) вікна програми, ширини (10) й висоти (100) прямокутника — зображення ракетки, діаметр (20) круга — зображення м'яча, приріст ординати ракетки на одне оновлення екрану (3), поточних величин приросту абсциси (0) і ординати (0) круга за 1 такт оновлення екрану, верхніх меж приросту абсциси (5) і ординати (3) круга за 1 такт оновлення екрану, адреса використаного шрифту.

  2. Створити об'єкти:
    • вікно з темно зеленим тлом кольору "#008000";
    • лінії розмітки і круг (зображення м'яча) білого кольору;
    • прямокутники (зображення ракеток):
      • ліворуч — червоного кольору — керований програмою;
      • праворуч — жовтого кольору — керований користувачем;
    • написів для ведення рахунку з верхнім лівим кутом:
      • по горизонталі — у середині половин поля;
      • по вертикалі — на 5 пікселів нижче верхньої межі поля;
    • генератор випадкових чисел.
  3. Створити обробник події стану натиснених клавіш "up", "down", що призводять до переміщення зображення ракетки відповідно вгору чи вниз, але без виходу за верхню й нижню межу ігрового поля.

    Примітка. Усі наступні кроки виконувати у циклі оновлення вікна.

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

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

    • надати координатам ЛВК круга приростів;

    • врахувати можливість відбивання від горизонтальних меж поля:

      • складова швидкості по вертикалі змінює напрям на протилежний;

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

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

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

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

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


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