Исполнитель Робот действует на клетчатом поле, между соседними клетками которого могут стоять стены. Робот передвигается по клеткам поля и может выполнять следующие команды, которым присвоены номера:
- вверх
- вниз
- вправо
- влево
При выполнении каждой такой команды Робот перемещается в соседнюю клетку в указанном направлении. Если же в этом направлении между клетками стоит стена, то Робот разрушается.
Что произойдёт с Роботом из примера 8, если он выполнит последовательность команд 32323 (здесь цифры обозначают номера команд), начав движение из клетки А? Какую последовательность команд следует выполнить Роботу, чтобы переместиться из клетки А в клетку В, не разрушившись при этом от столкновения со стеной?
На рисунке поле 4 × 4 клетки. А — верхняя левая клетка, В — клетка третьей строки второго столбца. Стены стоят между клетками: (1, 1) и (2, 1); (1, 2) и (1, 3); (2, 2) и (3, 2); (2, 3) и (2, 4); (3, 1) и (3, 2); (3, 3) и (3, 4), где первая координата — номер строки сверху, вторая — номер столбца слева.
Проследим выполнение
| Шаг | Команда | Клетка после команды | Почему переход возможен |
|---|---|---|---|
| Начало | — | ( |
Исходная клетка |
| ( |
Между клетками нет стены | ||
| ( |
Между клетками нет стены | ||
| ( |
Между клетками нет стены | ||
| ( |
Между клетками нет стены | ||
| Не выполнена | Справа, между ( |
По правилу исполнителя попытка шагнуть через стену разрушает Робота. Следовательно, последовательность
Чтобы попасть в В, первые четыре безопасные команды можно сохранить. Из клетки (
Вывод: в первом случае Робот разрушается на пятой команде; во втором достигает В.
Последовательность
