52 lines
5.5 KiB
Plaintext
52 lines
5.5 KiB
Plaintext
\b;Задание
|
||
Возьмите кусок \l;титановой руды\u object\titanore;, точное размещение которого неизвестно. Чтобы его найти, используйте радар бота. Отнесите титановую руду к \l;преобразователю\u object\convert;.
|
||
|
||
\t;Программа
|
||
Как вы уже должно быть заметили, программы, написанные в предыдущих упражнениях, были полностью "слепыми": если бы титановая руда, батарея или пауки находились бы в другом месте, бот не смог бы найти их.
|
||
|
||
Радар представляет собой "глаза" бота. С помощью радара бот может замечать вокруг себя различные объекты. Например, инструкция \c;\l;radar\u cbot\radar;(TitaniumOre);\n; возвратит информацию о ближайшем куске \l;титановой руды\u object\titanore;. Тем не менее, нам необходимо где-нибудь "сохранить" информацию, возвращенную инструкцией \c;\l;radar\u cbot\radar;(TitaniumOre);\n;. Для этой задачи нам будет нужна \l;переменная\u cbot\var;.
|
||
|
||
\l;Переменная\u cbot\var; представляет собой как бы маленький ящик с названием, в который мы можем положить какую-то информацию, взять ее оттуда, изменить ее, и т.п. Перед тем, как вы сможете использовать переменную, вы должны задать ее. Сначала вы должны указать \l;тип\u cbot\type; переменной, для этого \c;объекта\n;. Переменная этого типа может содержать всю информацию, описывающую объект (например, титановую руду, паука, муравья, бота, батарею и т.п.). После этого вы должны указать имя, которое хотите присвоить этой переменной, например \c;item\n;. Если мы сложим все это вместе, то получим следующую строку:
|
||
\c;
|
||
\s;\l;object\u cbot\type; item;
|
||
\n;
|
||
После этого мы должны ввести информацию, возвращенную инструкцией \c;\l;radar\u cbot\radar;(TitaniumOre)\n;, в эту переменную:
|
||
\c;
|
||
\s;item = \l;radar\u cbot\radar;(TitaniumOre);
|
||
\n;
|
||
Переменная \c;item\n; содержит различные виды информации: позицию, ориентацию, высоту и т.п. Чтобы узнать размещение куска титановой руды, напишите \c;item.position\n;. После этого мы используем инструкцию \c;goto();\n; чтобы переместить бота в эту позицию. Вот строка, собирающая все это вместе:
|
||
\c;
|
||
\s;\l;goto\u cbot\goto;(item.position);
|
||
\n;
|
||
Если мы "переведем" все на русский язык, это будет означать: отправиться к позиции объекта, описанной переменной \c;item\n;.
|
||
|
||
После этого вы можете взять то, что лежит в этом месте с помощью инструкции \c;\l;grab\u cbot\grab;();\n;.
|
||
|
||
Если мы соберем все это вместе, то получим следующую программу:
|
||
\c;
|
||
\s;extern void object::Titanium2( )
|
||
\s;{
|
||
\s;
|
||
\s; \l;object\u cbot\type; item;
|
||
\s; item = \l;radar\u cbot\radar;(TitaniumOre);
|
||
\s; \l;goto\u cbot\goto;(item.position);
|
||
\s; grab();
|
||
\s;
|
||
\s;}
|
||
\n;
|
||
После этого вы должны найти \l;преобразователь\u cbot\convert; и поместить информацию о преобразователе в переменной \c;item\n;:
|
||
\c;
|
||
\s;item = \l;radar\u cbot\radar;(Converter);
|
||
\n;
|
||
Подойдите к преобразователю с помощью все той же инструкции \c;\l;goto\u cbot\goto;(item.position);\n; , как было сделано выше, сбросьте титан и отойдите назад. Все остальное поручите сделать преобразователю.
|
||
|
||
Если вы хотите узнать больше об "именах" различных объектов в языке программирования, обратитесь пожалуйста к \l;тексту о категориях\u cbot\category;.
|
||
|
||
\t;Комментарий
|
||
\l;Переменная\u cbot\var; должна быть задана только один раз в начале программы! Потом вы можете использовать ее сколько угодно.
|
||
|
||
Чтобы избежать перепечатывания инструкций, о которых говорилось выше, вы можете выбрать их с помощью мыши, и копировать-вставить \button 61; их в свою программу.
|
||
|
||
\t;См. также
|
||
\l;Программирование\u cbot;, \l;типы\u cbot\type; и \l;категории\u cbot\category;.
|