Как написать программу для робота в паскале

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

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

uses Robot;
begin

Рисуем в среде программирования Pascal


Task(‘c1’);
end.

Здесь Task — процедура, содержащаяся в модуле Robot и вызывающая задание с указанным именем.
Имеются следующие группы заданий для исполнителя Робот:
a – вводные задания;
if – логические выражения (например Task(‘if1’);Task(‘if2’); );

Оператор проверки условия

if УСЛОВИЕ then
begin
КОМАНДЫ;
end;

Пример программы для решения задачи if1

uses Robot;
begin
Task(‘if1’);
right;
if WallFromUp then
begin
down;
right;
up;
end;
if wallfromdown then
begin
up;
right;
down;
end;
end.

Источник: inforege.blogspot.com

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

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

Шумская Лариса

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

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

Читайте также:
Можно ли увеличить разрешение видео с помощью программы

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

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

Right – перемещает Робота вправо;
Left – перемещает Робота влево;
Up – перемещает Робота вверх;
Down – перемещает Робота вниз;
Paint – закрашивает текущую ячейку;
WallFromLeft – возвращает True если слева от Робота стена;

Паскаль с нуля [ч1]. Первая программа.


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

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

uses Robot;
begin
Task(‘c1’);
end.

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

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

a – вводные задания;
c – цикл с параметром;
if – логические выражения;
w – циклы с условием;
сif – циклы + логические выражения;
count – переменные-счетчики;
cc – вложенные циклы;
p – процедуры без параметров;
pp – процедуры с параметрами.

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

Читайте также:
Язык ada был разработан для написания программ

Источник: znanio.ru

Создание заданий для исполнителя Робот

Опишем последовательность создания группы заданий для исполнителя Робот. Создадим модуль RobTasks.pas со следующи м текстом:

unit RobTasks;

interface

uses RobotTaskMaker;

implementation

procedure FirstRob;
begin
TaskText(‘Задание myrob1. Закрасить помеченные клетки’);
Field(10,6);
HorizontalWall(0,3,4);
VerticalWall(4,3,2);
RobotBegin(1,4);
VerticalWall(5,1,5);
HorizontalWall(5,1,4);
RobotEnd(6,2);
Tag(6,2);
end;

begin
RegisterGroup(‘myrob’,’Мои задания для Робота’,’RobTasks’,2);
RegisterTask(‘myrob1’,FirstRob);
end.

Наберем и запустим основную программу (сохранять ее в каком-либо файле не требуется):

uses Robot, RobTasks;
begin
Task(‘myrob1’);
end.

Будет выведено следующее задание для Робота:

Добавим задание, в котором конфигурация поля случайна:

procedure SecondRob;
var n,i: integer;
begin
TaskText(‘Задание myrob2. Закрасить клетки под закрашенными’);
n:=Random(4)+7;
Field(n,4);
RobotBeginEnd(1,3,n,3);
MarkPainted(n,2);
Tag(n,3);
for i:=2 to n-1 do
if Random(3)=1 then
begin
MarkPainted(i,2);
Tag(i,3);
end;
end;

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

begin
RegisterGroup(‘myrob’,’Мои задания для Робота’,’RobTasks’,2);
RegisterTask(‘myrob1’,FirstRob);
RegisterTask(‘myrob2’,SecondRob);
end.

Изменим основную программу:

uses Robot, RobTasks;
begin
Task(‘myrob 2 ‘);
end.

При запуске этой программы в окне исполнителя Робот будет выведено новое задание:

При первом запуске программы с подключенным модулем DMTasks созданная нами группа была автоматически зарегистрирована в мастере по созданию программ-заготовок PT4Load. Если теперь нажать кнопку и в появившемся окне PT4Load ввести префикс RB в поле «Задание», то окно примет следующий вид:

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru