Исполнитель КОРАБЛИК «живет» в ограниченном прямоугольном водоеме-лабиринте, разделенном на клетки и изображенном на рисунке (вид сверху). Серые клетки — скалистые берега, светлые — свободное пространство, безопасное для передвижения КОРАБЛИКА. По краю водоема-лабиринта также находятся скалы с нанесенными на них номерами и буквами для удобства идентификации клеток.
Система команд исполнителя КОРАБЛИК:
При выполнении любой из этих команд КОРАБЛИК перемещается на одну клетку соответственно (по отношению к наблюдателю): вверх, вниз, влево, вправо. Четыре команды проверяют истинность условия отсутствия стены у каждой стороны той клетки, где находится КОРАБЛИК (также по отношению к наблюдателю):
Цикл
ПОКА <условие> команда
выполняется, пока условие истинно, иначе происходит переход на следующую строку. При попытке передвижения на любую серую клетку КОРАБЛИК разбивается о скалы.
Сколько клеток приведенного лабиринта соответствуют требованию, что, стартовав в ней и выполнив предложенную ниже программу, КОРАБЛИК не разобьется?
НАЧАЛО
ПОКА <сверху свободно> вверх
ПОКА <слева свободно> влево
вверх
вправо
КОНЕЦ
Эффективным приёмом решения является проверка клеток группами. Начав движение из любой клетки столбца А, клеток В7, В8 Кораблик разобьется, выполняя команду вверх. Стартовав из любой клетки первой строки, Кораблик разобьется, выполняя команду вверх. Начав движение из любой клетки столбцов C, D, E, G, H, J, K, L, M, I Кораблик разобьется, выполняя команду вверх.
Начав движение из клетки F8 Кораблик не разобьется. Начав движение из клеток N7, N8, O7, O8 Кораблик не разобьется.