Модуль RobotTaskMaker
| Типы модуля RobotTaskMaker |
type TaskProcType = procedure;
Тип процедуры, генерирующей конкретное задание.
Каждое задание реализуется в виде отдельной процедуры; для связывания этой процедуры
с именем задания необходимо использовать процедуру RegisterTask, описываемую ниже.
| Процедуры модуля RobotTaskMaker |
procedure Field(szx,szy: integer);
Задает поле Робота размера szx
на szy клеток.
procedure HorizontalWall(x,y,len: integer);
Создает горизонтальную стену длины len
и координатами левого верхнего угла (x,
y).
procedure VerticalWall(x,y,len: integer);
Создает вертикальную стену длины len
и координатами левого верхнего угла (x,
y).
procedure RobotBegin(x,y: integer);
Задает начальное положение Робота в клетке с координатами (x,
y).
procedure RobotEnd(x,y: integer);
Задает конечное положение Робота в клетке с координатами (x,
y).
procedure RobotBeginEnd(x,y,x1,y1: integer);
Задает начальное положение Робота в клетке с координатами (x,
y) и конечное в клетке с координатами (x1,
y1).
procedure Tag(x,y: integer);
Помечает клетку (x,
y) для закрашивания.
procedure TagRect(x,y,x1,y1: integer);
Помечает прямоугольник из клеток, задаваемый координатами
противоположных вершин прямоугольника (x,
y) и (x1,
y1), для
закрашивания.
procedure MarkPainted(x,y: integer);
Закрашивает клетку (x,
y) (в задании некоторые клетки могут быть
уже закрашены).
procedure TaskText(s: string);
Задает формулировку текста задания в строке s.
procedure RegisterGroup(name,description,unitname: string; count: integer);
Обеспечивает автоматическую регистрацию новой группы заданий в программном модуле PT4Load.
В результате имя данной группы будет отображаться в окне модуля PT4Load в списке групп, связанных с исполнителем Робот,
что позволит создать программу-заготовку для выполнения любого задания этой группы.
В качестве параметров процедуры указывается имя группы name,
краткое описание группы description,
имя модуля unitname, в котором описана группа, и количество заданий count.
Имя группы заданий должно содержать не более 7 символов (цифр и латинских букв) и не должно оканчиваться цифрой,
количество заданий не должно превышать 999.
Процедура RegisterGroup должна
вызываться в секции инициализации модуля, содержащего реализацию новой группы заданий для Робота.
procedure RegisterTask(name: string; p: TaskProcType);
Связывает имя задания name с процедурой p, в которой реализовано данное задание.
Данную процедуру следует вызывать для каждого задания.
Подобно описанной выше процедуре RegisterGroup, процедура RegisterTask должна вызываться в секции инициализации
модуля, содержащего реализацию новой группы заданий для Робота. Порядок вызова этих процедур может быть произвольным.