\b;Задание
Оснастите \l;крылатых стрелков\u object\botfj;  \l;батареями\u object\power;, чтобы они смогли начать уничтожать муравьев в муравейнике, расположенном в норе на севере от вашей текущей позиции.

\t;Программа
\l;Крылатый сборщик\u object\botgr; должен подойти к \l;батарее\u object\power;, взять ее, отправиться к \l;крылатому стрелку\u object\botfj; и бросить там батарею. Это задание очень напоминает задание, которое мы выполняли в предыдущем упражнении. Ниже мы еще раз приводим текст этой программы:
\c;
\s;extern void object::Titanium2()
\s;{
\s;	object    item;
\s;	
\s;	item = radar(TitaniumOre);
\s;	goto(item.position);
\s;	grab();
\s;	
\s;	item = radar(Converter);
\s;	goto(item.position);
\s;	drop();
\s;}
\n;
Лучшим способом решения этого упражнения будет копирование \button 61; программы, приведенной выше, в буфер обмена (от \c;object\n; до \c;drop();\n;). После этого вставьте \button 62; ее в редактор программ. После этого вы должны будете просто сделать небольшие изменения, чтобы приспособить ее к новому заданию.

Вместо того, чтобы искать титановую руду (\c;TitaniumOre\n;), ищите батареи (\c;PowerCell\n;). Вместо перехода к преобразователю (\c;Converter\n;), идите к крылатому стрелку (\c;WingedShooter\n;). Как только у крылатого стрелка появится новая батарея, он приступит к работе.

Если вы хотите больше узнать об "именах" различных объектов этого языка программирования, обратитесь пожалуйста к \l;тексту о категориях\u cbot\category;.

\t;Дальнейшее улучшение: циклы
Как только программа, приведенная выше, заработает, вы можете улучшить ее, чтобы повторять задание снова и снова. Тогда вам не придется запускать программу каждый раз, когда возникает необходимость оснастить бота батареей.

Все программы, написанные до этого момента, выполняют все инструкции только один раз, одну за другой, с самого начала и до конца программы. Вы можете приказать ботам повторять некоторые инструкции: просто напишите \c;while (true)\n;, открывающая скобка, инструкции, которые следует повторять, и закрывающая скобка. Повторение некоторых инструкций таким способом носит название цикла. Вот пример программы, которая снова и снова повторяет инструкции, которые ищут батарею, берут ее и бросают крылатому стрелку:
\c;
\s;	while (true)
\s;	{
\s;		item = radar(PowerCell);
\s;		goto(item.position);
\s;		grab();
\s;		
\s;		item = radar(WingedShooter);
\s;		goto(item.position);
\s;		drop();
\s;	}
\n;
Конечно же, задание переменной \c;object item;\n; не должно производиться внутри цикла, а перед ним: задавайте переменную только один раз.

\t;Комментарий
Бот сам отлично справляется с задачей запуска програмы. В то же время, вы, например, можете выбрать астронавта и посмотреть на то, что происходит в гнезде. Это просто нужно увидеть. Но будьте осторожны, чтобы не быть подстреленным своими же собственными ботами...

\t;См. также
\l;Программирование\u cbot;, \l;типы\u cbot\type; и \l;категории\u cbot\category;.
