colobot-data/help/R/tproc2.txt

35 lines
2.8 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;Упражнение
Следуйте по спиральному пути. Бот должен проследовать два раза вперед на 25 метров и развернуться, а после этого пройти два раза вперед на 20 метров и развернуться еще раз и т.д.
\image tproc2 8 8;
\b;Функция
Вы заметите, что путь состоит из частей, имеющих форму буквы "L", которые сложены друг с другом. Первая чать (темно-синяя) имеет размер два раза по 25 метров. Вторая (светло-синяя) на 5 метров меньше. Давайте начнем написание программы с функции, которая переместит бота на части, имеющей форму буквы "L", чья длина будет задана в виде параметра:
\c;
\s;void object::Part(float length)
\s;{
\s; for ( int i=0 ; i<2 ; i=i+1 )
\s; {
\s; move(length);
\s; turn(90);
\s; }
\s;}
\n;
Теперь вы должны написать главную функцию, которая будет вызывать функцию \c;Part\n;. В самом начале переменная \c;rest\n; будет установлена на 25 метров. Цикл \c;while\n; повторит инструкции внутри блока. Это будет продолжаться до тех пор, пока \c;rest\n; больше нуля. Внутри цикла сначала произойдет вызов функции \c;Part\n; (см. выше), а после этого из длины L будет вычтено 5 метров.
\c;
\s;extern void object::Function2( )
\s;{
\s; float rest = 25;
\s; while ( rest > 0 )
\s; {
\s; Part(rest);
\s; rest = rest-5;
\s; }
\s;}
\n;
Функция \c;Part\n; будет вызвана в последний раз со значением \c;5\n;. После этого выражение \c;rest-5\n; установит значение переменной \c;rest\n; на нуль, и цикл \c;while\n; будет остановлен.
\b;Комментарий
Вы заметите, что в предыдущем упражнении главная функция располагалась в начале программы, а в этом упражнении она в конце программы после функции \c;Part\n;. Последовательность функций в программе не имеет значения, вы можете писать программу так, как вам больше нравится.
\t;См. также
\l;Программирование\u cbot;, \l;типы\u cbot\type; и \l;категории\u cbot\category;.