Описание языка «PascalABC.NET».

Исполнитель Робот.

Исполнитель Робот действует на прямоугольном клеточном поле. Между некоторыми клетками, а также по периметру поля находятся стены. Основная цель Робота ¦-- закрасить указанные клетки и переместиться в конечную клетку.

Исполнитель Робот и поле, на котором он работает, отображаются следующим образом:

Описание языка «PascalABC.NET».

Здесь большой желтый квадрат изображает Робота, маленький желтый квадрат в левом верхнем углу клетки -- конечное положение Робота, черными точками помечены клетки, которые надо закрасить.

Команды исполнителя Робот содержатся в модуле Robot:

Right – перемещает Робота вправо; Left – перемещает Робота влево; Up – перемещает Робота вверх; Down – перемещает Робота вниз; Paint – закрашивает текущую ячейку; WallFromLeft – возвращает True если слева от Робота стена; WallFromRight – возвращает True если справа от Робота стена; WallFromUp – возвращает True если сверху от Робота стена; WallFromDown – возвращает True если снизу от Робота стена; FreeFromLeft – возвращает True если слева от Робота свободно; FreeFromRight – возвращает True если справа от Робота свободно; FreeFromUp – возвращает True если сверху от Робота свободно; FreeFromDown – возвращает True если снизу от Робота свободно; CellIsPainted – возвращает True если ячейка, в которой находится Робот, закрашена; CellIsFree – возвращает True если ячейка, в которой находится Робот, не закрашена.

Для вызова задания для исполнителя Робот используется следующий шаблон программы:

Uses Robot; Begin. Task('c1');

Здесь Task -- процедура, содержащаяся в модуле Robot и вызывающая задание с указанным именем.

Имеются следующие группы заданий для исполнителя Робот:

A – вводные задания; C – цикл с параметром; If – логические выражения; W – циклы с условием; Сif – циклы + логические выражения; Count – переменные-счетчики; Cc – вложенные циклы; P – процедуры без параметров; Pp – процедуры с параметрами.

Для создания стандартного поля размера 9 x 11 используется процедура StandardField без параметров, а для создания поля размера N x M -- процедура Field(N,M). Робот при этом помещается в центр поля.