37 lines
3.4 KiB
Plaintext
37 lines
3.4 KiB
Plaintext
\b;Упражнение
|
||
В этом упражнении \l;посты обмена информацией\u object\exchange; по всему пути содержат направление к следующему посту и расстояние к нему. И вы не знаете, сколько постов обмена вы можете встретить до того, как достигните цели.
|
||
|
||
\b;Общий принцип
|
||
Повторять всегда:
|
||
o Получите направление на \l;посту обмена\u object\exchange;.
|
||
o Получите расстояние на \l;посту обмена\u object\exchange;.
|
||
o Если вы не можете получить никакой информации, остановите программу.
|
||
o Произведите поворот.
|
||
o Следуйте прямо к следующему посту.
|
||
|
||
Чтобы повторять всегда, используйте цикл \c;\l;while\u cbot\while; (true)\n;. Инструкция в скобках \c;{ }\n; будет повторяться снова и снова, или пока не будет выполнена функция \c;\l;break\u cbot\break;\n;.
|
||
\s;\c; while ( true )
|
||
\n;
|
||
В этот раз вам будут необходимы 2 \l;переменные\u cbot\var;, одна для угла поворота, вторая для расстояния. Например, \c;dir\n; и \c;len\n; :
|
||
\s;\c; float dir, len;
|
||
\n;
|
||
После этого вы можете получить информацию:
|
||
\s;\c; dir = receive("Направление");
|
||
\s;\c; len = receive("Длина");
|
||
\n;
|
||
Переменная \l;type\u cbot\type; \c;\l;float\u cbot\float;\n; может принимать определенное значение, называемое \c;\l;nan\u cbot\nan;\n;. Оно означает, что переменная не содержит чисел (Not A Number).
|
||
Когда поблизости нет \l;обменных пунктов\u object\exchange; потому что бот достиг цели или потому что он пошел в неправильном направлении, две переменные \c;dir\n; и \c;len\n; содержат это значение. Вы можете проверить это с помощью инструкции \c;\l;if\u cbot\if;\n;, и остановить программу, если в этом возникает необходимость, с помощью инструкции \c;\l;break\u cbot\break;\n;:
|
||
\s;\c; if ( dir == nan ) break;
|
||
\n;
|
||
Если получение информации на \l;обменном посту\u object\exchange; прошло успешно, произведите поворот:
|
||
\s;\c; turn(dir);
|
||
\n;
|
||
И идите вперед:
|
||
\s;\c; move(len);
|
||
\n;
|
||
\b;Комментарий
|
||
Вы можете щелкнуть на \l;посту обмена информации\u object\exchange;, чтобы прочитать ту информацию, которую он содержит. В этом упражнении каждый пункт обмена содержит две переменные, которые называются \c;"Направление"\n; и \c;"Длина"\n;.
|
||
|
||
\t;См. также
|
||
\l;Программирование\u cbot;, \l;типы\u cbot\type; и \l;категории\u cbot\category;.
|