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