Книга: Описание языка 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). Робот при этом помещается в центр поля.

Оглавление книги


Генерация: 0.043. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз