Тема: cтворення нескладної комп'ютерної гри з використанням змінниї величин мовою Java
Мета: навчитися складати та виконувати алгоритми з використанням змінних для розв’язування задач мовою Java.
По завершенню навчання учень уміє:
застосовувати отримані знання під час вирішення практичних завдань;
надавати значення змінним та змінювати їх, у тому числі програмним шляхом;
створювати та застосовувати інформаційні моделі різних типів із використанням змінних.
Обладнання: ПК із встановленою ОС і середовищем програмування мовою Java (наприклад, Eclipse або Netbeans), дана інструкція.
Структура уроку
Хід уроку
1. Організаційний момент
Вітання з класом. Перевірка присутності і готовності учнів до уроку. Перевірка виконання домашнього завдання.
Мотивація навчання. Протягом цього уроку ми навчимося створювати застосунки з графічним інтерфейсом. І зробимо це, розробивши ігровий проект.
Теорія ігор — математична теорія, спрямована на пошук оптимальної (виграшної) стратегії (поведінки) в умовах конфлікту інтересів: у грі в казино, конкуренції компаній на ринку, військовому протистоянні. Сторони, які беруть участь у конфліктній ситуації, у межах цієї теорії називають гравцями. Гру описуть сукупністю правил: які є позиції (стани) гри і з яких позицій у які можна робити хід, яку кінцеву позицію, з якої немає жодного ходу, вважати виграшною (і який виграш), а яку — програшною (і який програш). Ходи бувають двох видів:
зроблені гравцями;
результат випадкового втручання (експерименту): підкидання монети, грального кубика, роботи датчика випадкових чисел.
На початковій стадії знайомства з теорією ігор використовують прості ігри. Сьогодні ми розробимо гру «Вгадай число». Суть гри заключається в тому, що комп'ютер генерує випадкове ціле число від 1 до n. метою гравця є вгадати число за якомога меншу кількість спроб.
2. Актуалізація опорних знань
Описати поняття, виділені жирним шрифтом, і порівняти з очікуваним.
Метод у мові java — частина коду в описі класу, що має свою назву й містить опис дій, які може виконати представник класу.
Оголошення та визначення методу має такий вигляд:
тип_повернення назва_методу (список_параметрів) { вказіка1; //тіло методу вказіка2; … вказікаn; }
Тип повернення — це тип величини — результату застосування методу. Якщо метод нічого не повертає, то вказують ключове слово void.
Виклик методу здійснюють так:
об'єкт.метод(список_параметрів)
або
об'єктна_змінна.метод(список_параметрів)
Типи даних
Назва | Довжина у байтах | Діапазон зміни |
---|---|---|
boolean | не визна- чено | {true, false} |
byte | 1 | −128..127 |
char | 2 | 0..216−1, тобто 0..65535 |
short | 2 | −215..215−1, тобто −32768..32767 |
int | 4 | −231..231−1, тобто −2147483648..2147483647 |
long | 8 | −263..263−1, тобто приблизно −9.2·1018..9.2·1018 |
float | 4 | −(2−2−23)·2127..(2−2−23)·2127, тобто приблизно −3.4·1038..3.4·1038 |
double | 8 | −(2−2−52)·21023..(2−2−52)·21023, тобто приблизно −1.8·10308..1.8·10308 |
Оголошення змінних розпочинають з обов'язкового вказання типу даних, після чого йде назва змінної. Оголошення змінної завершують крапкою з комою.
Логічні оператори застосовують до величин типу boolean з таким самим типом результату:
Позначення | Опис |
---|---|
& | Логічне «і» (AND) |
| | Логічне «або» (OR) |
^ | Логічне виняткове «або» (XOR) |
|| | Коротке «або» |
&& | Коротке «і» |
! | Логічне заперечення «не» (NOT) |
&= | Логічне «і» з наданням значення |
|= | Логічне «або» з наданням значення |
^= | Виняткове «або» з наданням значення |
== | Рівність (еквівалентність) |
!= | Не рівність (нееквівалентність) |
?: | Тернарний if-then-else (якщо-тоді-інакше) |
A | B | A | B | A & B | A ^ B | !A |
---|---|---|---|---|---|
False | False | False | False | False | True |
True | False | True | False | True | False |
False | True | True | False | True | True |
True | True | True | True | False | False |
Умовний оператор (неповна форма)
if (умова) вказівка;
Якщо умова справджується (true), буде виконано вказівку, записану в операторі, інакше її не буде виконано. Якщо при справдженні умови необхідно виконати не один, а багато операторів, усіх їх розміщують у блоці:
if (умова) { оператор1; … операторn; }
Якщо необхідно здійснити певну дію і в разі не виконання умови, то застосовують умовний оператор у повній формі.
Умовний оператор (повна форма)
if (умова) оператор1 else оператор2;
Алгоритм створення і виконання проекту Java в інтегрованому середовищі програмування Eclipse з використанням контексного меню.
3. Вивчення нового матеріалу
Для створення і програмування інтерфейсу ігрового проекту необхідно використати елементи мови Java для подійно-орієнтованого програмування щодо елементів керування. За вказаними у попередньому реченні гіперпосиланнями викладено істотно більше, ніж потрібно безпосередньо для виконання проекту. Обмежимося лише тим, що є необхідним безпосередньо для даного проекту.
Спочатку потрібно забезпечити можливості такого:
Це можна зробити за допомогою таких вказівок на початку програми:
import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*;
В тексті власне програми потрібно використати наступне (перелічено у порядку використання):
опис елементів інтерфейсу:
JPanel назва_панелі; JLabel назва_напису; JTextField назва_текстового_поля; JButton назва_кнопки;
створення елемента інтерфейсу:
назва_елемента_інтерфейсу = new клас_елемента_інтерфейсу("Напис");
створення схеми розташування у формі таблиці:
GridLayout назва_схеми_розташування = new GridLayout(кількість_рядків, кількість_стовпчиків);
встановлення для панелі схеми розташування:
назва_панелі.setLayout(назва_схеми_розташування);
додавання об'єкта на панель:
назва_панелі.add(назва_об'єкта);
зв'язування кнопки зі слухачем подій:
назва_об'єкта.addActionListener(this);
робота з фреймом:
JFrame назва_фрейму = new JFrame("Напис"); // створення назва_фрейму.setContentPane(назва_панелі); // задання панелі назва_фрейму.setSize(Nx, Ny); // задання розміру назва_фрейму.setVisible(true); // фрейм зроблено видимим
виведення вікна діалогу для підтвердження дії:
JOptionPane.showConfirmDialog(null,"Напис у вікні","Заголовок вікна",JOptionPane.PLAIN_MESSAGE);
public void actionPerformed(ActionEvent e) { if (e.getActionCommand( ).equals("Yes") { //вказівки до виконання при натиснутій кнопці "Yes" } }Перевизначення базового методу (наприклад, згаданого вище методу actionPerformed) здійснюють за допомогою анотації @Override, яку записуюють безпосередньо перед перевизначенням.
Завдання. Створити програму для гри «Вгадай число» з таким алгоритмом роботи.
Завантажити інтегроване середовище програмування Eclipse і робити таке:
Оптимальна щодо кількості ходів поведінка гравця має такий вигляд.
Після кожного виконання пункту 2 буде удвічі зменшено розмір поточного діапазону. Тому за скінчену кількість кроків буде правильно вгадано значення числа a. Таку поведінку (стратегію) доречно використати при тестуванні програми (див. подані нижче ілюстрації).
6. Підбиття підсумків уроку
Виставлення оцінок.
7. Домашнє завдання
Керуючись описаною вище стратегією, удосконалити гру так, щоб комп'ютер визначав оптимальну кількість спроб і порівнював її з кількістю спроб, що зробив гравець. Узгодити закінчення слова спроб при виведенні останнього вікна.
Текст упорядкував Костюченко Віталій Геннадійович, вчитель Немішаївського НВК Бородянського району Київської області, під час виконання випускної роботи на курсах підвищення кваліфікації з 30.10.2017 по 03.11.2017 року.
Використано матеріали розробок уроків Остапенко Галини Іванівни й Коростельової Євгенії Юріївни, що проходила курси удосконалення з 24 по 28 жовтня 2016 року та Євтехової Ізабелли Євгеніївни, що проходила курси удосконалення з 05.12.2016 по 09.12.2016 року.