pascalabcnet/PABCNetHelp/ForEducation/MakeModules/RobotMakeCreation.html

115 lines
5.6 KiB
HTML
Raw Permalink Normal View History

<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">&nbsp; </span>TaskText('Задание myrob1. Закрасить помеченные клетки');<br>
<span lang="ru">&nbsp; </span>Field(10,6);<br>
<span lang="ru">&nbsp; </span>HorizontalWall(0,3,4);<br>
<span lang="ru">&nbsp; </span>VerticalWall(4,3,2);<br>
<span lang="ru">&nbsp; </span>RobotBegin(1,4);<br>
<span lang="ru">&nbsp; </span>VerticalWall(5,1,5);<br>
<span lang="ru">&nbsp; </span>HorizontalWall(5,1,4);<br>
<span lang="ru">&nbsp; </span>RobotEnd(6,2);<br>
<span lang="ru">&nbsp; </span>Tag(6,2);<br>
<b>end</b>;</code></p>
<p><code><b>begin</b><br>
&nbsp; RegisterGroup('myrob','Мои задания для Робота','RobTasks',2);<br>
&nbsp; 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>
&nbsp; 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">&nbsp; </span>TaskText('Задание myrob2. Закрасить клетки под закрашенными');<br>
<span lang="ru">&nbsp; </span>n:=Random(4)+7;<br>
<span lang="ru">&nbsp; </span>Field(n,4);<br>
<span lang="ru">&nbsp; </span>RobotBeginEnd(1,3,n,3);<br>
<span lang="ru">&nbsp; </span>MarkPainted(n,2);<br>
<span lang="ru">&nbsp; </span>Tag(n,3);<br>
<span lang="ru">&nbsp; </span><b>for</b> i:=2 <b>to</b> n-1 <b>do</b><br>
<span lang="ru">&nbsp;&nbsp;&nbsp; </span><b>if</b> Random(3)=1 <b>then</b><br>
<span lang="ru">&nbsp;&nbsp;&nbsp; </span><b>begin</b><br>
<span lang="ru">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>MarkPainted(i,2);<br>
<span lang="ru">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Tag(i,3);<br>
<span lang="ru">&nbsp;&nbsp;&nbsp; </span><b>end</b>;<br>
<b>end</b>;</code></p>
</blockquote>
<p>Добавим вызов процедуры регистрации для данного задания; в результате секция инициализации примет следующий вид:</p>
<blockquote>
<p><code><b>begin</b><br>
&nbsp; RegisterGroup('myrob','Мои задания для Робота','RobTasks',2);<br>
&nbsp; RegisterTask('myrob1',FirstRob);<br>
&nbsp; 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>
&nbsp; 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>.
Если теперь нажать кнопку&nbsp;<img border="0" src="images/load.gif" width="16" height="17">&nbsp;и в появившемся окне
<b>PT4Load</b> ввести префикс
</span><span lang="en-us"><code>RB</code></span><span lang="ru"> в поле &laquo;Задание&raquo;, то окно примет следующий вид:
&nbsp;</span></p>
<p><img border="0" src="images/rbmake3.PNG">
&nbsp;</p>
<p>Мы видим, что группа заданий myrob появилась в списке доступных групп для исполнителя Робот. Наберем имя задания
<span lang="en-us"><code>myrob1</code></span>:</p>
<p><img border="0" src="images/rbmake4.PNG">
&nbsp;</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>
&nbsp; Task('myrob1');<br>
<br>
<b>end</b>.</code></p>
</blockquote>
<p>Можно приступать к решению собственноручно разработанной задачи :)</p>
</body>
</html>