49 lines
4.6 KiB
Plaintext
49 lines
4.6 KiB
Plaintext
\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;.
|