52 lines
2.6 KiB
ObjectPascal
52 lines
2.6 KiB
ObjectPascal
|
|
// Copyright (c) Ivan Bondarev, Stanislav Mihalkovich (for details please see \doc\copyright.txt)
|
|||
|
|
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
|||
|
|
|
|||
|
|
///Исполнитель Робот действует на прямоугольном клеточном поле. Между некоторыми клетками, а также по периметру поля находятся стены.
|
|||
|
|
///Основная цель Робота – закрасить указанные клетки и переместиться в конечную клетку.
|
|||
|
|
unit Робот;
|
|||
|
|
|
|||
|
|
uses Robot,RobotField;
|
|||
|
|
|
|||
|
|
procedure Вправо := Right;
|
|||
|
|
procedure Влево := Left;
|
|||
|
|
procedure Вверх := Up;
|
|||
|
|
procedure Вниз := Down;
|
|||
|
|
procedure Закрасить := Paint;
|
|||
|
|
function СправаСвободно := FreeFromRight;
|
|||
|
|
function СлеваСвободно := FreeFromLeft;
|
|||
|
|
function СверхуСвободно := FreeFromUp;
|
|||
|
|
function СнизуСвободно := FreeFromDown;
|
|||
|
|
function СправаСтена := WallFromRight;
|
|||
|
|
function СлеваСтена := WallFromLeft;
|
|||
|
|
function СверхуСтена := WallFromUp;
|
|||
|
|
function СнизуСтена := WallFromDown;
|
|||
|
|
function КлеткаНеЗакрашена := CellIsFree;
|
|||
|
|
function КлеткаЗакрашена := CellIsPainted;
|
|||
|
|
procedure Задание(имя: string) := Task(имя);
|
|||
|
|
procedure СтандартноеПоле := StandardField;
|
|||
|
|
procedure Поле(n,m: integer) := Field(n,m);
|
|||
|
|
|
|||
|
|
begin
|
|||
|
|
HelpStr :=
|
|||
|
|
'Разработчик исполнителя Робот: Михалкович С.С., 2002-17 '#10#13#10#13+
|
|||
|
|
'Команды исполнителя Робот:'#10#13+
|
|||
|
|
' Вправо'#10#13+
|
|||
|
|
' Влево'#10#13
|
|||
|
|
' Вверх'#10#13+
|
|||
|
|
' Вниз'#10#13
|
|||
|
|
' Закрасить - закрасить текущую клетку'#10#13
|
|||
|
|
' Задание(имя) - вызвать задание с указанным именем'#10#13
|
|||
|
|
' СтандартноеПоле - вызвать стандартное поле'#10#13
|
|||
|
|
' Поле(n,m) - вызвать поле размера n на m'#10#13
|
|||
|
|
'Условия, проверяемые исполнителем Робот:'#10#13
|
|||
|
|
' СправаСтена'#10#13
|
|||
|
|
' СлеваСтена'#10#13
|
|||
|
|
' СверхуСтена'#10#13
|
|||
|
|
' СнизуСтена'#10#13
|
|||
|
|
' СправаСвободно'#10#13
|
|||
|
|
' СлеваСвободно'#10#13
|
|||
|
|
' СверхуСвободно'#10#13
|
|||
|
|
' СнизуСвободно'#10#13
|
|||
|
|
' КлеткаЗакрашена'#10#13
|
|||
|
|
' КлеткаНеЗакрашена'#10#13;
|
|||
|
|
end.
|