Теория:
Исполнитель Робот передвигается по лабиринту, который является плоскостью, разбитой на клетки. Между клетками лабиринта может находиться стена, которую Робот должен обойти, не врезаясь в неё.
Если Робот врезается в стену, он ломается и задача не решена.
Робот умеет выполнять следующие девять команд.
Робот умеет выполнять следующие девять команд.
Команды-приказы:
вверх,
вниз,
влево,
вправо.
вверх,
вниз,
влево,
вправо.
При их выполнении Робот передвигается на одну клетку в заданном направлении.
Команда-приказ:
закрасить.
закрасить.
По этой команде Робот закрашивает клетку, в которой находится.
Команды проверки условий:
сверху свободно;
снизу свободно;
слева свободно;
справа свободно.
сверху свободно;
снизу свободно;
слева свободно;
справа свободно.
Используются, чтобы узнать, свободен ли путь для Робота в данном направлении.
При составлении программы для Робота можно пользоваться условным оператором «если»:
При составлении программы для Робота можно пользоваться условным оператором «если»:
если условие то
последовательность команд
все
последовательность команд
все
Где условие — одна из команд проверки условий, а последовательность команд — это набор команд-приказов.
Чтобы передвинуть Робота на одну клетку влево, если слева нет стены, и закрасить её, будет использоваться алгоритм:
если слева свободно то
влево
закрасить
все
влево
закрасить
все
Для использования нескольких команд проверки условий одновременно, применимы логические операции не, и, или.
если (слева свободно) и (не сверху свободно) то
влево
все
влево
все
Если необходимо выполнять команду, пока выполняется какое-либо условие, применяем цикл пока:
нц пока условие
последовательность команд
кц
последовательность команд
кц
Где нц — начало цикла, кц — конец цикла.
Чтобы Робот перемещался влево, пока нет препятствий, используем алгоритм:
нц пока слева свободно
влево
кц
влево
кц