Тема: реалізація алгоритму гри «Сапер» з визначенням для кожного елемента таблиці кількість сусідніх елементів з мінами мовою PHP.
Мета:
Обладнання: комп'ютери зі встановлено ОС та можливість повноцінної роботи у середовищі програмування PHP. Наприклад, MS Windows + Denwer.
Структура уроку
Хід уроку
1. Організаційний момент
Вітання з класом. Перевірка присутності і готовності учнів до уроку. Перевірка виконання домашнього завдання.
2. Актуалізація опорних знань
Дати відповіді на запитання і порівняти з очікуваними відповідями.
Що таке РНР?
PHP — мова програмування, створена для породження HTML-сторінок зі сторони веб-сервера.
Як позначають початок та кінець виконання програми РНР?
<?php — початок програми мовою РНР,
?> — кінець програми.
Як в РНР позначають назви змінних?
Назви змінних у PHP починанають зі знаку $ та можуть містити літери латиниці, цифри, а також літери кирилиці, хоча кирилицю радять використовувати дуже обережно.
Що таке підпрограма?
Підпрограма — це спеціальним чином оформлений фрагмент програми, до якого можна звернутися з будь-якого іншого місця всередині програми.
Як записують цикл мовою РНР?
while (логічний вираз) вказівка;
do {вказівки циклу} while (логічний вираз);
for (вказівки_початку; умова_циклу; вказівки_кінця_ітерації) {вказівки циклу}
Як записують умовний оператор мовою РНР?
if (логічний вираз) оператор;
if (логічний вираз) оператор1 else оператор2;
switch(вираз) { case значення1: вказівка1; [break;] case значення2: вказівка2; [break;] ... case> значенняК: вказівкаK; [break;] [default: вказівка_як_усталено; [break]] }
Яка вказівка забезпечує виведення даних об'єкту?
echo
Якщо у відкритій комірці вказано число, воно показує, скільки мін приховано у восьми сусідніх клітинах навколо даної. Це число допомагає гравцеві зрозуміти, де розташовано безпечні клітини.
3. Інструктаж з ТБ
4. Вироблення практичних навичок
Завдання. Створити комп'ютерну програму мовою PHP для гри «Сапер».
Вказівки до виконання:
Реалізувати цей план таким чином.
Створення робочого середовища для розробки програми. Усі кроки виконання, починаючи з 5, виконувати, використовуючи конкурс ідей, і порівнювати з демонстраційним розв'язанням. Для перегляду здійснювати перехід за гіперпосиланням.
Створити теку у вказаному вчителем місці. Наприклад, Z:\WebServer\home\yarik.com.ua.
У створеній теці створити три файли index.html, genField.php, clickHandler.php.
У середовищі текстового редактора відкрити створений текстовий документ index.html і зберегти його з кодуванням UTF-8.
У разі використання Denwer запустити на виконання файл Restart.exe з вказаного вчителем теки (наприклад Z:\WebServer\denwer) з метою оновлення списку сайтів (на Denwer).
Для того, щоб користувач на початку і під час перебігу в у гри не міг взнати розташування мін, використано 3 різні файли з таким призначенням:
genField.php — породження поля, розташування мін і підрахунок кількості мін у сусідніх клітинках;
clickHandler.php — відображення клацань мишею на ігровому полі;
index.html — відображення ігрового поля та поєднання всіх частин програми в одну.
Створення коду породження ігрового поля (тут і далі кроки перелічено у порядку наповнення файлу програми).
Ввести теги php у файл genField.php (у середовищі текстового редактора) і надалі весь текст вводити між ними.
Замовити використання сесій для прихованої побудови поля й розташування на ньому мін.
Задати змінні $fx і $fy, які будуть визначати розмір поля, а значення яких буде взято з форми, яку буде описано пізніше у файлі index.html.
Ввести умову оператора IF, при якій буде виконано програму: $fx і $fy мають бути у діапазоні від 5 до 30 включно.
Обчислити кількість мін на полі, що у 10 разів менша від кількості клітин поля.
Заповнити поле нулями за допомогою циклу FOR.
Розставити міни за допомогою циклу FOR.
Підрахувати кількості мін у сусідніх клітинах за допомогою циклу FOR та оператора IF.
Записати результат клітинки в сесію.
Вивести результат у масив.
Створення коду відображення клацання миші по ігровому полю.
Ввести теги php у файл clickHandler.php (у середовищі текстового редактора) і надалі весь текст вводити між ними.
За допомогою функції IF вказати відгук до початку гри.
Відобразити вказівку введення даних.
Якщо вказано некоректну клітинку, вивести повідомлення про помилку.
Відобразити клацання миші та перевірку клітинки.
Відобразити результати клацання (порожня клітинка, міна).
Створення інтерфейсу користувача та об'єднання всіх складових програми.
Ввести початковий код index.html у середовищі текстового редактора.
За допомогою стилів CSS відформатувати сторінку.
Поєднати всі складові програми у контейнері head документа index.html.
Створити форму для введення даних (розміру поля).
Перевірити роботу програми. Порівняти з роботою демонстраційного розв'язання:
genField.php — породження поля, розташування мін і підрахунок кількості мін у сусідніх клітинках;
clickHandler.php — відображення клацань мишею на ігровому полі;
index.html — відображення ігрового поля та поєднання всіх частин програми в одну (після переходу за гіперпосиланням переглянути код сторінки).
У разі потреби внести зміни у програму.
5. Підбиття підсумків уроку.
Обговорення з учнями проблем, які виникли під час виконання завдання. Відповіді на запитання учнів. Виставлення оцінок.
6. Домашнє завдання. Проаналізувати коди розв'язання, повторити матеріал про використані теги і функії PHP. Змінити коди: збільшити максимальні допустимі розміри з 30 до 90, виводити повідомлення про рівень гравця (початківець, досвідчений гравець, ас, критерії встановити самостійно), розміри з метою введення
Текст упорядкував Бойко Ярослав Андрійович, вчитель Київського професійного будівельного ліцею Дарницького району міста Києва, під час виконання випускної роботи на курсах підвищення кваліфікації з 14.11.2016 по 18.11.2016