Робот на клетчатой бумаге — найди маршрут и запиши программу

Игры на бумаге · № 104 · алгоритмы

«Робот на бумаге» — это игра с маршрутом, которую легко провести без компьютера. Вместо программирования на экране игрок составляет короткую последовательность стрелок, а второй участник выступает исполнителем: передвигает значок робота по клеткам и останавливается, если команда ведёт в стену.

Цель задания: довести робота от S до G на поле 7×7, не заходя в клетки со знаком #. Одна стрелка означает один шаг по стороне клетки. Для предложенного поля проверен маршрут из шести команд.
Содержание статьи7 разделов

Как подготовить игровое поле

Начертите сетку из семи строк и семи столбцов. Стены удобно закрашивать чёрным карандашом; остальные клетки оставляйте белыми. Подписывайте координаты, чтобы можно было обсуждать маршрут по телефону или в классе.

      1 2 3 4 5 6 7
1     # # # # # # #
2     # S . . # G #
3     # . # . . . #
4     # . . . # . #
5     # . # . . . #
6     # . . . . . #
7     # # # # # # #

Старт S — в строке 2, столбце 2. Финиш G — строка 2, столбец 6. Важно: соседство на одной строке не означает, что можно просто провести прямую — между ними стоит стена.

Словарь команд для бумажного робота

Команда Действие Как записать словами
↑ На клетку выше Вверх
↓ На клетку ниже Вниз
← На клетку левее Влево
→ На клетку правее Вправо

Если следующая клетка — #, программа считается ошибочной и останавливается. Робот не перепрыгивает стену и не двигается по диагонали. В учебной версии все команды записываются заранее; поправлять маршрут во время исполнения запрещено.

Задание № 1 — составьте программу из шести стрелок

Попробуйте обойти препятствие, не заходя на внешнюю рамку. Сравнивайте каждую команду с текущими координатами: после двух ходов направо робот окажется в (2,4), но следующая клетка справа — стена. Значит, надо спуститься и попробовать обогнуть её.

Лист программиста

Команды:
1. __
2. __
3. __
4. __
5. __
6. __
Лист проверяющего

После каждой команды записывайте пару «строка, столбец». Если последовательность выходит за поле или попадает в стену, укажите номер первой неверной команды.

Показать проверенный маршрут и координаты
Программа: → → ↓ → → ↑
S    (2,2)
1 →  (2,3)
2 →  (2,4)
3 ↓  (3,4)
4 →  (3,5)
5 →  (3,6)
6 ↑  (2,6) = G

Каждый переход идёт в клетку без стены. Маршрут длиной шесть шагов найден алгоритмом поиска в ширину, то есть это один из кратчайших маршрутов на указанном поле.

Задание № 2 — отладьте чужую программу

Другой игрок написал: → → → ↓ → ↑. Попробуйте выполнить её слева направо. Где робот впервые нарушит правило?

Ответ к заданию на ошибку

Третья команда «→» пытается провести робота из (2,4) в (2,5), но там находится стена. Поэтому выполнение останавливается на третьем шаге, а дальнейшие команды не рассматриваются.

Как устроить настоящую игру для двоих

  1. Игрок А рисует новое поле 6×6 или 7×7, отмечает старт и цель и сам находит хотя бы один путь.
  2. Игрок Б за две минуты записывает программу стрелками без права стирать стены.
  3. А выполняет команды. Если робот дошёл до цели по правилам, Б получает 1 очко.
  4. Дополнительное очко получают за путь без лишних шагов; для честности автор должен заранее записать известный кратчайший путь.
  5. Игроки меняются ролями. Побеждает тот, у кого больше очков после четырёх раундов.

Три уровня сложности

Уровень Новое ограничение Что меняется
1 Одна команда — один шаг Тренировка чтения карты
2 Нельзя проходить одну клетку дважды Нужно отслеживать уже пройденный маршрут
3 Используйте запись «→×2, ↓, →×2, ↑» Ребёнок осваивает сокращённые команды и повторения

Чему учит игра и как проверить честность

За внешне простой прогулкой по клеткам скрываются навыки работы с алгоритмами: последовательность действий, исполнение без импровизации, поиск ошибки и исправление программы. Можно поставить таймер, но лучше сначала добиться точности. Скорость имеет смысл сравнивать только после того, как оба понимают правило стен.

  • Проверяйте, что у составленного автором поля есть хотя бы один проход к финишу.
  • Не меняйте уже выполненную команду после того, как заметили ошибку.
  • Не разрешайте роботам «проходить через угол» диагонально.
  • Если детям трудно удерживать текущую клетку в памяти, используйте маленькую бумажную фишку и перемещайте её по нарисованной сетке.
Три вопроса для самопроверки

Можно ли пройти из (2,4) в (2,6) одной командой? Нет: команда движет только на одну клетку, а между ними ещё и стена.

Куда ведёт последняя команда программы? Из (3,6) вверх в (2,6), на финиш.

Для чего нужен второй игрок-исполнитель? Он проверяет алгоритм без подсказок и показывает первую ошибку, если она есть.

После этой игры легко перейти к более сложным заданиям: полям со сбором звёздочек, ограничением количества поворотов или несколькими обязательными промежуточными точками. Но начинайте с одного чёткого маршрута.

Примеры сделаны для самостоятельной игры на обычном листе. Ответы к заданиям раскрываются после попытки решения. Иллюстрации-поля приведены в тексте и не требуют внешних файлов.

Поделиться

Сохраните материал или отправьте тому, кому он пригодится.

Поставить оценку

Была ли статья полезной и понятной?

Пока нет оценок — будьте первым