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

Тема: cтворення нескладної комп'ютерної гри з використанням змінниї величин мовою Java

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

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

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

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

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

Хід уроку

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

Мотивація навчання. Протягом цього уроку ми навчимося створювати застосунки з графічним інтерфейсом. І зробимо це, розробивши ігровий проект.

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

На початковій стадії знайомства з теорією ігор використовують прості ігри. Сьогодні ми розробимо гру «Вгадай число». Суть гри заключається в тому, що комп'ютер генерує випадкове ціле число від 1 до n. метою гравця є вгадати число за якомога меншу кількість спроб.

2. Актуалізація опорних знань
Описати поняття, виділені жирним шрифтом, і порівняти з очікуваним.

Метод у мові java — частина коду в описі класу, що має свою назву й містить опис дій, які може виконати представник класу.

Оголошення та визначення методу має такий вигляд:

тип_повернення  назва_методу (список_параметрів)
{ вказіка1; //тіло методу
  вказіка2;
  …
  вказікаn;
}

Тип поверненняце тип величини — результату застосування методу. Якщо метод нічого не повертає, то вказують ключове слово void.

Виклик методу здійснюють так:

об'єкт.метод(список_параметрів)

або

об'єктна_змінна.метод(список_параметрів)

Типи даних

НазваДовжина
у байтах
Діапазон зміни
booleanне
визна-
чено
{true, false}
byte1−128..127
char20..216−1, тобто 0..65535
short2−215..215−1, тобто −32768..32767
int4−231..231−1,
тобто −2147483648..2147483647
long8−263..263−1, тобто
приблизно −9.2·1018..9.2·1018
float4−(2−2−23)·2127..(2−2−23)·2127, тобто
приблизно −3.4·1038..3.4·1038
double8−(2−2−52)·21023..(2−2−52)·21023, тобто
приблизно −1.8·10308..1.8·10308

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

Логічні оператори застосовують до величин типу boolean з таким самим типом результату:

ПозначенняОпис
&Логічне «і» (AND)
|Логічне «або» (OR)
^Логічне виняткове «або» (XOR)
||Коротке «або»
&&Коротке «і»
!Логічне заперечення «не» (NOT)
&=Логічне «і» з наданням значення
|=Логічне «або» з наданням значення
^=Виняткове «або» з наданням значення
==Рівність (еквівалентність)
!=Не рівність (нееквівалентність)
?:Тернарний if-then-else (якщо-тоді-інакше)


Таблиця істинності логічних операторів

ABA | BA & BA ^ B !A
FalseFalseFalseFalseFalseTrue
True FalseTrue FalseTrue False
FalseTrue True FalseTrue True
True True True True FalseFalse

Умовний оператор (неповна форма)

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.*;

В тексті власне програми потрібно використати наступне (перелічено у порядку викорис­тання):

При натисканні кнопки чи іншого компонента програма породжує рядок тексту вказівка дії (action command). Цей рядок (String) дозволяє ідентифікувати компонент, що надсилає подію. Наприклад, як усталено, у JButton вказівка дії збігається з назвою кнопки. Щоб отримати вказівку дії з події, необхідно викликати метод getActionCommand() для цієї. Наступний код визначає чи натиснуто клавішу Yes:

public void actionPerformed(ActionEvent e)
{ if (e.getActionCommand( ).equals("Yes")
  { //вказівки до виконання при натиснутій кнопці "Yes"
  }
}
Перевизначення базового методу (наприклад, згаданого вище методу actionPerformed) здійснюють за допомогою анотації @Override, яку записуюють безпосередньо перед перевизначенням.

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


Завдання розв'язати (складати алгоритм і програму) за допомогою конкурсу ідей, після чого порівнявати отримане розв'язання з демонстраційним. Файли записувати у вказану вчителем теку з такою назвою: Ваше_прізвище.java.

Завдання. Створити програму для гри «Вгадай число» з таким алгоритмом роботи.

  1. Ввести значення цілого числа n.
  2. Згенерувати випадкове значення числа a від 1 до n.
  3. Ввести значення цілого числа b від 1 до n.
  4. Якщо a = b, то вивести повідомлення: «Ти вгадав! Гру закінчено». Інакше:
    • якщо a > b, то вивести повідомлення: «Загадане число більше» і перейти до пункту 3;
    • інакше вивести повідомлення: «Загадане число менше» і перейти до пункту 3.

Завантажити інтегроване середовище програмування Eclipse і робити таке:

Оптимальна щодо кількості ходів поведінка гравця має такий вигляд.

  1. Вважати діапазон 1..n поточним.
  2. Для поточного діапазону l..r вказати середнє b =[(l + r)/2].
  3. Якщо a > b, то змінити поточний діапазон на (b + 1)..r.
  4. Якщо a < b, то змінити поточний діапазон на l..(b – 1).
  5. Перейти до виконання пункту 2.

Після кожного виконання пункту 2 буде удвічі зменшено розмір поточного діапазону. Тому за скінчену кількість кроків буде правильно вгадано значення числа a. Таку поведінку (стратегію) доречно використати при тестуванні програми (див. подані нижче ілюстрації).





















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

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


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


Використано матеріали розробок уроків Остапенко Галини Іванівни й Коростельової Євгенії Юріївни, що проходила курси удосконалення з 24 по 28 жовтня 2016 року та Євтехової Ізабелли Євгеніївни, що проходила курси удосконалення з 05.12.2016 по 09.12.2016 року.