115 lines
5.6 KiB
HTML
115 lines
5.6 KiB
HTML
<html>
|
||
|
||
<head>
|
||
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
|
||
<param name="Keyword" value="">
|
||
</object>
|
||
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
|
||
<title></title>
|
||
<link rel="StyleSheet" href="../../default.css">
|
||
</head>
|
||
|
||
<body>
|
||
<H1>Создание заданий для исполнителя Робот</H1>
|
||
<hr>
|
||
<p><span lang="ru">Опишем последовательность создания группы заданий для
|
||
исполнителя Робот. Создадим модуль </span>RobTasks.pas со следующи<span lang="ru">м
|
||
текстом:</span></p>
|
||
<blockquote>
|
||
<p><code><b>unit</b> RobTasks;</code></p>
|
||
<p><code><b>interface</b></code></p>
|
||
<p><code><b>uses</b> RobotTaskMaker;</code></p>
|
||
<p><code><b>implementation</b></code></p>
|
||
<p><code><b>procedure</b> FirstRob;<br>
|
||
<b>begin</b><br>
|
||
<span lang="ru"> </span>TaskText('Задание myrob1. Закрасить помеченные клетки');<br>
|
||
<span lang="ru"> </span>Field(10,6);<br>
|
||
<span lang="ru"> </span>HorizontalWall(0,3,4);<br>
|
||
<span lang="ru"> </span>VerticalWall(4,3,2);<br>
|
||
<span lang="ru"> </span>RobotBegin(1,4);<br>
|
||
<span lang="ru"> </span>VerticalWall(5,1,5);<br>
|
||
<span lang="ru"> </span>HorizontalWall(5,1,4);<br>
|
||
<span lang="ru"> </span>RobotEnd(6,2);<br>
|
||
<span lang="ru"> </span>Tag(6,2);<br>
|
||
<b>end</b>;</code></p>
|
||
<p><code><b>begin</b><br>
|
||
RegisterGroup('myrob','Мои задания для Робота','RobTasks',2);<br>
|
||
RegisterTask('myrob1',FirstRob);<br>
|
||
<b>end</b>.</code></p>
|
||
</blockquote>
|
||
<p><span lang="ru">Наберем и запустим основную программу (сохранять ее в каком-либо файле не требуется):</span></p>
|
||
<blockquote>
|
||
<p><code><b>uses</b> Robot, RobTasks;<br>
|
||
<b>begin</b><br>
|
||
Task('myrob1');<br>
|
||
<b>end</b>.</code></p>
|
||
</blockquote>
|
||
<p>Будет выведено следующее задание для Робота:
|
||
</p>
|
||
<p><img border="0" src="images/rbmake1.PNG"></p>
|
||
<p><span lang="ru">
|
||
Добавим задание, в котором конфигурация поля случайна:</span></p>
|
||
<blockquote>
|
||
<p><code><b>procedure</b> SecondRob;<br>
|
||
<b>var</b> n,i: integer;<br>
|
||
<b>begin</b><br>
|
||
<span lang="ru"> </span>TaskText('Задание myrob2. Закрасить клетки под закрашенными');<br>
|
||
<span lang="ru"> </span>n:=Random(4)+7;<br>
|
||
<span lang="ru"> </span>Field(n,4);<br>
|
||
<span lang="ru"> </span>RobotBeginEnd(1,3,n,3);<br>
|
||
<span lang="ru"> </span>MarkPainted(n,2);<br>
|
||
<span lang="ru"> </span>Tag(n,3);<br>
|
||
<span lang="ru"> </span><b>for</b> i:=2 <b>to</b> n-1 <b>do</b><br>
|
||
<span lang="ru"> </span><b>if</b> Random(3)=1 <b>then</b><br>
|
||
<span lang="ru"> </span><b>begin</b><br>
|
||
<span lang="ru"> </span>MarkPainted(i,2);<br>
|
||
<span lang="ru"> </span>Tag(i,3);<br>
|
||
<span lang="ru"> </span><b>end</b>;<br>
|
||
<b>end</b>;</code></p>
|
||
</blockquote>
|
||
<p>Добавим вызов процедуры регистрации для данного задания; в результате секция инициализации примет следующий вид:</p>
|
||
<blockquote>
|
||
<p><code><b>begin</b><br>
|
||
RegisterGroup('myrob','Мои задания для Робота','RobTasks',2);<br>
|
||
RegisterTask('myrob1',FirstRob);<br>
|
||
RegisterTask('myrob2',SecondRob);<br>
|
||
<b>end</b>.</code></p>
|
||
</blockquote>
|
||
<p><span lang="ru">Изменим основную программу:</span></p>
|
||
<blockquote>
|
||
<p><code><b>uses</b> Robot, RobTasks;<br>
|
||
<b>begin</b><br>
|
||
Task('myrob<span lang="ru">2</span>');<br>
|
||
<b>end</b>.</code></p>
|
||
</blockquote>
|
||
<p><span lang="ru">При запуске этой программы в окне исполнителя Робот будет выведено новое задание:</p>
|
||
<p><img border="0" src="images/rbmake2.PNG"></p>
|
||
<p>
|
||
При первом запуске программы с подключенным модулем <code>DMTasks</code> созданная нами группа была автоматически зарегистрирована
|
||
в мастере по созданию программ-заготовок <b>PT4Load</b>.
|
||
Если теперь нажать кнопку <img border="0" src="images/load.gif" width="16" height="17"> и в появившемся окне
|
||
<b>PT4Load</b> ввести префикс
|
||
</span><span lang="en-us"><code>RB</code></span><span lang="ru"> в поле «Задание», то окно примет следующий вид:
|
||
</span></p>
|
||
|
||
<p><img border="0" src="images/rbmake3.PNG">
|
||
</p>
|
||
<p>Мы видим, что группа заданий myrob появилась в списке доступных групп для исполнителя Робот. Наберем имя задания
|
||
<span lang="en-us"><code>myrob1</code></span>:</p>
|
||
<p><img border="0" src="images/rbmake4.PNG">
|
||
</p>
|
||
<p>После нажатия <span lang="en-us">Enter </span>в рабочем каталоге будет создан
|
||
новый файл <span lang="en-us">RBmyrob1.pas </span>со следующим содержимым:</p>
|
||
<blockquote>
|
||
<p><code><b>uses</b> Robot, RobTasks;<br>
|
||
<br>
|
||
<b>begin</b><br>
|
||
Task('myrob1');<br>
|
||
<br>
|
||
<b>end</b>.</code></p>
|
||
</blockquote>
|
||
<p>Можно приступать к решению собственноручно разработанной задачи :)</p>
|
||
</body>
|
||
|
||
</html>
|