34 lines
3.6 KiB
Plaintext
34 lines
3.6 KiB
Plaintext
\b;Задание
|
||
Примените в качестве защиты при нападении муравьев со всех сторон программу \c;Spider2\n;, чтобы иметь возможность лететь на заданной высоте.
|
||
|
||
\t;Программа
|
||
Программа, необходимая для выполнения этой задачи, чем-то напоминает программу \c;Spider2\n;, которая ищет ближайшего муравья, поворачивает бота ему навстречу и стреляет из пушки:
|
||
\c;
|
||
\s;extern void object::Spider2()
|
||
\s;{
|
||
\s; object item;
|
||
\s;
|
||
\s; while (true)
|
||
\s; {
|
||
\s; item = radar(AlienSpider);
|
||
\s; turn(direction(item.position));
|
||
\s; fire(1);
|
||
\s; }
|
||
\s;}
|
||
\n;
|
||
Вы можете копировать-вставить ее редактор, и запустить. Замените \c;radar(AlienSpider);\n; на \c;radar(AlienAnt);\n;, и напишите перед циклом \c;while\n; еще один цикл, активирующий под \l;крылатым стрелком\u object\botfj; реактивный двигатель, пока бот не наберет высоту 20 мметров.
|
||
|
||
Инструкция \c;\l;jet\u cbot\jet;()\n; управляет двигателем под крылатыми ботами. Число в кавычках должно быть между \c;-1\n; и \c;1\n;.\c; jet(1);\n; перемещает бота вверх с максимальной скоростью.\c; jet(-1);\n; перемещает бота с максимальной скоростью вниз, а \c;jet(0);\n; стабилизирует высоту. Так как боту необходимо набрать определенную высоту, медленно поднимите его вверх с \c;jet(0.2);\n;, подождите, пока он наберет желаемую высоту, а после этого стабилизируйте его с помощью команды \c;jet(0);\n;.
|
||
|
||
Чтобы "подождать, пока он наберет желаемую высоту", нам нужен цикл с условием: инструкции внутри цикла будут повторяться до того времени, пока определенное условие будет истинным. Высота бота определяется \c;position.z\n;. Мы уже видели, что \c;position\n; задает позицию бота. Позиция задается тремя координатами x, y и z: ось x - это ось запад-восток, ось y - ось юг-север, а ось z - это вертикальная ось. Поэтому мы должны подождать, пока \c;position.z\n; будет меньше 20 метров:
|
||
\c;
|
||
\s; while (position.z < 20)
|
||
\s; {
|
||
\s; wait(0.2);
|
||
\s; }
|
||
\n;
|
||
После задержки в 0.2 секунды программа проверит, какова высота бота над поверхностью, и не находится ли он ниже 20 метров. Если это так, она подождет еще немного, а если нет, программа будет продолжена после цикла, то есть после закрывающей скобки \c;}\n;. Не забудьте после цикла стабилизировать высоту \c;jet(0);\n;.
|
||
|
||
\t;См. также
|
||
\l;Программирование\u cbot;, \l;типы\u cbot\type; и \l;категории\u cbot\category;.
|