colobot-data/help/R/tcell2.txt

49 lines
4.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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