colobot-data/help/R/ttit2.txt

52 lines
5.5 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

\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;.