pascalabcnet/PABCNetHelp/ForEducation/MakeModules/RobotMake.html

132 lines
7.9 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<html>
<head>
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
<param name="Keyword" value="TaskProcType">
<param name="Keyword" value="Field">
<param name="Keyword" value="HorizontalWall">
<param name="Keyword" value="VerticalWall">
<param name="Keyword" value="RobotBegin">
<param name="Keyword" value="RobotEnd">
<param name="Keyword" value="RobotBeginEnd">
<param name="Keyword" value="Tag">
<param name="Keyword" value="TagRect">
<param name="Keyword" value="MarkPainted">
<param name="Keyword" value="TaskText">
<param name="Keyword" value="RegisterTask">
<param name="Keyword" value="RegisterGroup">
</object>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>
<link rel="StyleSheet" href="../../default.css">
</head>
<body>
<H1>Модул<span lang="ru">ь </span>RobotTaskMaker</H1>
<hr>
<table border="0" width="100%" id="table1" style="border-width: 0px" cellpadding="8">
<tr height=20pt>
<td style="border-style:none; border-width:medium; background-color: #99CCFF">
<b><font size="2" color="#800080"><span lang="ru">Типы</span> модуля </font></b>
<font size="2" color="#800080"><b>RobotTaskMaker</b></font></td>
</tr>
</table>
<blockquote>
<p><code><b>type</b> TaskProcType<span lang="ru"> </span>=<b><span lang="ru">
</span>procedure</b>;</code></p>
</blockquote>
<p>Тип процедуры, генерирующей конкретное задание.
Каждое задание реализуется в виде отдельной процедуры; для связывания этой процедуры
с именем задания необходимо использовать процедуру <code>RegisterTask</code>, описываемую ниже.
</p>
<table border="0" width="100%" id="table2" style="border-width: 0px" cellpadding="8">
<tr height=20pt>
<td style="border-style:none; border-width:medium; background-color: #99CCFF">
<b><font size="2" color="#800080">Процедуры модуля </font></b>
<font size="2" color="#800080"><b>RobotTaskMaker</b></font></td>
</tr>
</table>
<blockquote>
<p><code><b>procedure</b> Field(szx,szy: integer); </code></p>
</blockquote>
<p><span lang="ru">Задает поле Робота размера </span><code>szx</code>
<span lang="ru">на </span><code>szy</code> <span lang="ru">клеток</span>.</p>
<blockquote>
<p><code><b>procedure</b> HorizontalWall(x,y,len: integer); </code></p>
</blockquote>
<p><span lang="ru">Создает горизонтальную стену длины </span><code>len</code><span lang="ru">
и координатами левого верхнего угла (</span><code>x</code>,<span lang="ru">
</span><code>y</code>)<span lang="ru">.</span></p>
<blockquote>
<p><code><b>procedure</b> VerticalWall(x,y,len: integer); </code></p>
</blockquote>
<p><span lang="ru">Создает вертикальную стену длины </span><code>len</code><span lang="ru">
и координатами левого верхнего угла (</span><code>x</code>,<span lang="ru">
</span><code>y</code>)<span lang="ru">.</span></p>
<blockquote>
<p><code><b>procedure</b> RobotBegin(x,y: integer); </code></p>
</blockquote>
<p><span lang="ru">Задает начальное положение Робота в клетке с координатами (</span><code>x</code>,<span lang="ru">
</span><code>y</code>)<span lang="ru">.</span></p>
<blockquote>
<p><code><b>procedure</b> RobotEnd(x,y: integer); </code></p>
</blockquote>
<p><span lang="ru">Задает конечное положение Робота в клетке с координатами (</span><code>x</code>,<span lang="ru">
</span><code>y</code>)<span lang="ru">.</span></p>
<blockquote>
<p><code><b>procedure</b> RobotBeginEnd(x,y,x1,y1: integer); </code></p>
</blockquote>
<p><span lang="ru">Задает начальное положение Робота в клетке с координатами (</span><code>x</code>,<span lang="ru">
</span><code>y</code>)<span lang="ru"> и конечное в клетке с координатами (</span><code>x<span lang="ru">1</span></code>,<span lang="ru">
</span><code>y<span lang="ru">1</span></code>)<span lang="ru">.</span></p>
<blockquote>
<p><code><b>procedure</b> Tag(x,y: integer); </code></p>
</blockquote>
<p><span lang="ru">Помечает клетку (</span><code>x</code>,<span lang="ru">
</span><code>y</code>)<span lang="ru"> для закрашивания.</span></p>
<blockquote>
<p><code><b>procedure</b> TagRect(x,y,x1,y1: integer); </code></p>
</blockquote>
<p><span lang="ru">Помечает прямоугольник из клеток, задаваемый координатами
противоположных вершин прямоугольника (</span><code>x</code>,<span lang="ru">
</span><code>y</code>)<span lang="ru"> и (</span><code>x<span lang="ru">1</span></code>,<span lang="ru">
</span><code>y<span lang="ru">1</span></code>)<span lang="ru">, для
закрашивания.</span></p>
<blockquote>
<p><code><b>procedure</b> MarkPainted(x,y: integer); </code></p>
</blockquote>
<p><span lang="ru">Закрашивает клетку (</span><code>x</code>,<span lang="ru">
</span><code>y</code>)<span lang="ru"> (в задании некоторые клетки могут быть
уже закрашены).</span></p>
<blockquote>
<p><code><b>procedure</b> TaskText(s: <b>string</b>); </code></p>
</blockquote>
<p><span lang="ru">Задает формулировку текста задания в строке </span><code>s</code><span lang="ru">.</span></p>
<blockquote>
<p><code><b>procedure</b> RegisterGroup(name,description,unitname: string; count: integer); </code></p>
</blockquote>
<p>Обеспечивает автоматическую регистрацию новой группы заданий в программном модуле <b>PT4Load</b>.
В результате имя данной группы будет отображаться в окне модуля <b>PT4Load</b> в списке групп, связанных с исполнителем Робот,
что позволит создать программу-заготовку для выполнения любого задания этой группы.
В качестве параметров процедуры указывается имя группы <code>name</code>,
краткое описание группы <code>description</code>,
имя модуля <code>unitname</code>, в котором описана группа, и количество заданий <code>count</code>.
Имя группы заданий должно содержать не более 7 символов (цифр и латинских букв) и не должно оканчиваться цифрой,
количество заданий не должно превышать 999.
Процедура <code>RegisterGroup</code> должна
вызываться в секции инициализации модуля, содержащего реализацию новой группы заданий для Робота.
</p>
<blockquote>
<p><code><b>procedure</b> RegisterTask(name: string; p: TaskProcType);</code>
</blockquote>
<p>Связывает имя задания <code>name</code> с процедурой <code>p</code>, в которой реализовано данное задание.
Данную процедуру следует вызывать для <i>каждого</i> задания.
Подобно описанной выше процедуре <code>RegisterGroup</code>, процедура <code>RegisterTask</code> должна вызываться в секции инициализации
модуля, содержащего реализацию новой группы заданий для Робота. Порядок вызова этих процедур может быть произвольным.
</p>
</body>
</html>