colobot-data/help/R/tremova2.txt

36 lines
2.9 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\titan; которые вы должны доставить на 3 финишные площадки. Вот координаты финишной площадки:
\c;
x=10, y=-60
x=10, y=-65
x=10, y=-70
\n;
\b;Общий принцип
Повторить 3 раза:
o Искать самый отдаленный титановый слиток с помощью \c;\l;radar\u cbot\radar;\n;.
o Взять его с помощью \c;\l;grab\u cbot\grab;\n;.
o Перейти к одной из площаок \c;\l;goto\u cbot\goto;\n;.
o Бросить титин \c;\l;drop\u cbot\drop;\n;.
Если вы ищите ближайший титановый слиток, радар укажет вам на тот, который вы уже нашли и принесли на площадку. Поэтому вы должны искать титановый слиток, находящийся от вас как можно дальше.
\b;Программа
Используйте цикл \c;\l;for\u cbot\for;\n;, чтобы повторить все необходимые для поиска титанового слитка инструкции 3 раза. Внутри цикла, чтобы найти самый отдаленный титановый слиток, используйте инструкцию \c;\l;radar\u cbot\radar;(Titanium, 0, 360, 0, 1000, -1);\n;. Последнее значение \c;-1\n; означает то, что вместо поиска ближайшего предмета, радар будет выдавать предмет, находящийся на самом большом расстоянии от бота.
\c;
\s;object metal;
\s;metal = radar(Titanium, 0, 360, 0, 1000, -1);
\s;if ( metal == null ) return;
\s;goto(metal.position);
\n;
Переменная \c;metal\n; относится к типу \c;\l;object\u cbot\object;\n;. Чтобы узнать позицию объекта, описанного переменной, вы должны написать \c;metal.position\n;.
Координата \c;x\n; 3-х площадок равна 10. Координата \c;y\n; соответственно -60, -65 и -70. Самый простой способ получить координаты позиции заключается в использовании значения \c;i\n; цикла \c;for\n; , которая последовательно будет принимать значения 0, 1 и 2:
\c;
\s;dest.x = 10;
\s;dest.y = -60-5*i;
\n;
Теперь вы сами должны закончить программу.
\t;См. также
\l;Программирование\u cbot;, \l;типы\u cbot\type; и \l;категории\u cbot\category;.