Продовжимо наше знайомство з RoboZZle – цікавим ресурсом, який покликаний зробити навчання учнів програмуванню більш цікавим та нестандартним за рахунок використання елементів ігрових технологій.
Для роботи з ресурсом достатньо перейти за посиланням robozzle.com/beta/, або ж завантажити відповідний додаток з магазину додатків для вашого мобільного пристрою.
Нагадаємо, що основною метою гри є збір виконавцем зірок за допомогою програмного коду.
Минулого разу ми познайомилися з деякими командами виконавця і розглянули систему завдань, яку можна використати для “плавного” знайомства учнів з ресурсом RoboZZle.
Зокрема, були розглянуті особливості побудови послідовних алгоритмів, алгоритмів з використанням допоміжних функцій, а також рекурсія.
Прожовжимо наше знайомство з системою команд виконавця і розглянемо, як можна використовувати розгалуження при вирішенні завдань.
Для побудови розгалужень використовуються спеціальні команди:
Використовуючи їх, ми фактично превіряємо умову “Чи знаходиться виконавець на клітинці певного кольору” і можемо виконати якусь дію при істинності цієї умови.
Наприклад, розгалуження потрібно використати для вирішення такого завдання:
По-перше, оскільки функція F1 має місце фактично лише для трьох блоків, то у рішенні має використовуватися рекурсія.
По-друге, не важко помітити, що на синій клітинці виконавець має повернути направо.
Тому рішення може бути таким:
Якщо прочитати цей алгоритм у словесній формі, то матимемо такі вказівки виконавцю:
- ЯКЩО бачиш синій ТО поверни направо.
- Рух вперед на одну клітинку.
- Розпочни все спочатку за рахунок рекурсивного виклику функції.
І, хоча розглянуте нами завдання можна вирішити ще в один спосіб, а саме:
необхідно чітко слідкувати за порядком команд, щоб отримати правильний результат.
Наприклад, вирішуючи таке завдання:
послідовність команд
є неправильною і не дозволить виконавцю зібрати всі зірки. Для вирішення необхідно скористатися такою послідовністю команд:
Тобто до вирішення кожного завдання необхідно підходити індивідуально, чітко все проаналізувавши!
Остання команда в системі команд виконавця: перефарбування комірок у вибраний колір
Наприклад, при вирішенні завдання
робот очевидно має повернути наліво на зеленій клітинці. Не важко переконатися, що в такому разі відбудеться “зациклення” дій виконавця і він буде постійно рухатися по сторонам квадрата. Щоб цього не трапилося – окрім повороту наліво, необхідно додатково перефарбувати клітинку в інший колір. Зрештою, матимемо таке рішення:
Традиційно, ми пропонуємо вашій увазі блок завдань, які на нашу думку, можна використати для знайомства учнів зі структурою розгалуження.
ЗАВДАННЯ. РІВЕНЬ 2:
У цьому та попередньому огляді ми познайомилися з основними можливостями сервіса RoboZZle. Звісно ж все не обмежується розглянутими прикладами та завданнями – на ресурсі є дуже багато завдань різного рівня складності та цікавості.
Окрім всього, зареєструвавшись на сервісі, користувачі мають змогу “помірятися силами” з іншими користувачами у вирішенні завдань! Якщо ж вдасться вирішити понад 40 завдань, то можна навіть створювати власні завдання, а це вже інший рівень!