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

Тема: створення ігрових проектів мовою Java.

Мета: навчитися складати та виконувати алгоритми з використанням змінних для розв’язування задач мовою Java.

По завершенню навчання учень повинен уміти:

Обладнання: комп’ютери зі встановленими ОС та середовищем програмування: JDK (Java Development Kit) + (Eclips, Netbeans або IntelliJ).

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

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

Хід уроку

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

Мотивація навчання. Cьогодні ми навчимося складати ігрову програму для розв'язування математичної задачі Баше. Для цього створемо ігровий проект мовою Java.

У теорії ігор — математичній теорії, спрямовані на пошук оптимальної (виграшної) стратегії (поведінки) в умовах конфлікту інтересів: у грі в казино, конкуренції компаній на ринку, військовому протистоянні. Сторони, які беруть участь у конфліктній ситуації, у межах цієї теорії називають гравцями. Гру описуть сукупністю правил: які є позиції (стани) гри і з яких позицій у які можна робити хід, яку кінцеву позицію, з якої немає жодного ходу, вважати виграшною (і який виграш), а яку — програшною (і який програш). Ходи бувають двох видів:

На початковій стадії знайомства з теорією ігор використовують прості ігри, одніює з яких є гра Баше (Клод Гаспар Баше де Мезірака (1581–1638) — французький математик, поет і перекладач): у початковий момент в купці є n предметів. Два гравці по черзі забирають з цієї купки предмети (від 1 до p включно). Переможцем вважають того, хто примусить суперника зробити останній хід.

Така грає прикладом анагоністичної гри (один гравець виграє, а інший — програє) з повною інформацією (усі гравці знають, у якій позиції перебуває гра) без випадкового втручання (всі ходи роблять лише гравці).

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

Алгоритм створення і виконання проекту Java в інтегрованому середовищі програму­вання Eclipse з викорис­танням контекс­ного меню.

Примітка. Якщо наступний зміст (до іструктажу з ТБ) попередньо не вивчали, то до нього потрібно ставитися як до вивчення нового матеріалу.

Abstract Window Toolkit (AWT — абстрактний віконний інтерфейс) — це пакет класів мови програмування Java, що слугує для створення графічного інтерфейсу користувача.

Пакунок AWT містить платформо-незалежні елементи графічного інтерфейсу, вигляд яких може залежати від конкретної системи.

Swingчастина бібліотеки базових класів Java (JFC, Java Foundation Classes), призначена для створення графічного інтерфейсу користувача. Створена після створення AWT і функціональніша.

Приклади роботи з AWT і Swing:


import java.awt.GridLayout;          // Замовлення менеджера розташування AWT
import java.awt.event.ActionEvent;   // Замовлення опрацювання подій AWT
import java.awt.event.ActionListener;// Замовлення відстежувача подій AWT
import javax.swing.*;                // Замовлення складових Swing;

// Опис класу з використанням відстежувача подій
public class назва_класу implements ActionListener {…}

// Опис використаних складових
JPanel назва_панелі;
JLabel назва_напису;
JTextField назва_поля_введення;
JButton назва_кнопки;
JFrame назва_контейнера-рамки;

// Використання складових
назва_панелі = new JPanel();                           // Створення панелі
GridLayout назва_менеджера = new GridLayout(3,3,10,10);// Створення менеджера розташування
назва_панелі.setLayout(назва_менеджера розташування);  // Застосування менеджера розташування
назва_кнопки = new JLabel("Напис на кнопці");          // Створення кнопки
назва_поля_введення; = new JTextField();               // Створення поля введення

// Додавання відстежувача подій до елемента керування й передавання йому екземпляра обробника подій
назва_елемента_керування.addActionListener(this);

назва_панелі.add(назва_елемента_керування); // Встановлення на панелі елемента керування
назва_вікна = new JFrame("заголовок_вікна");// Створення вікна 
назва_вікна.setContentPane(назва_панелі);   // Розташування панелі у вікні 
назва_вікна.setSize(ширина, висота);        // Задання розмірів вікна 
назва_об'єкта.setVisible(true);             // Зробити об'єкт видимим 
назва_об'єкта.setVisible(false);            // Зробити об'єкт невидимим 

// Swing: виклик вікна діалогу (звичайне повідомлення)
// для підвердження запиту так/ні/скасувати (є повний опис)
JOptionPane.showConfirmDialog(null, "текст для виведення",
            "заголовок вікна", JOptionPane.PLAIN_MESSAGE);

@Override // Аннотація подальшого переозначення методу базового класу.
          // Слугує для контролю успішності дій при збиранні проекту.

public void actionPerformed(ActionEvent e) 
{ JButton s = (JButton) e.getSource(); …        // Надання змінній s значення 
}                                               // кнопки - джерела події е

назва_об'єкта.setEnabled(true);                 // Вмикання об'єкта
назва_об'єкта.setEnabled(false);                // Вмикання об'єкта
назва_напису.setText("текст");                  // Відображення тексту у написі
назва_напису.setText(String.valueOf(число));    // Відображення у написі значення числа
число = Integer.valueOf(назва_напису.getText());// Надання числу значення з поля введення

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

Завдання 1. Створити програму, що реалізує гру Баше — див. ілюстрації нижче.

















Вказівки до розв'язання

  1. Завантажити інтегроване середовище програмування.
  2. Набрати текст програми, передбачивши таке:
    • замовлення:
      • менеджера розташування AWT;
      • опрацювання подій AWT;
      • відстежувача подій AWT;
      • складових Swing;
    • опис елементів інтерфейсу;
    • ініціалізація змінних, що описують позицію гри;
    • створення графічного інтерфейсу;
    • визначення того, яку кнопку було натиснуто;
    • частини коду для кожної з кнопок;
    • відповідь на некоректні вхідні дані.
  3. Компілювати і виправляти код до успішної компіляції;
  4. Перевіряти дію всіх частин коду програми.
  5. У разі помилки виправляти код або повідомляти вчителя.
  6. Розв'язання записати у теку з назвою Ваше прізвище у вказаному вчителем місці.
  7. Повідомити вчителя про успішну роботу програми.
  8. Порівняти складену програму з демонстраційним розв'язанням.

Завдання 2. Виявити (сформулювати) виграшну стратегію. Для цього можете взяти сірники і пограти у парах.

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

6. Домашнє завдання
При потребі доробити завдання 1. На його основі створити проект гри Баше, у якій одним з гравців є учень, а іншим комп'ютерна програма, що реалізує виграшну стратегію: залишати після свого ходу таку кількість предметів у купці, щоб лишок від ділення її на (p + 1) дорівнював 1.


Текст упорядкувала Безпрозванна Любов Михайлівна, учитель спеціалізованої школи № 76 імені Олеся Гончара Святошинського району міста Києва, під час виконання випускної роботи на курсах підвищення кваліфікації з 30.10.2017 по 03.11.2017.


Використано матеріали розробок уроків Гедзун Мар'яни Вікторівни, Коваленко Олени Станіславівни, Євтехової Ізабелли Євгеніївни, Петрушанської Наталії Михайлівни, Костюченка Віталія Геннадійовича, що проходили курси удосконалення у 2016 та 2017 роках.