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