\b;Упражнение
Это упражнение очень напоминает предыдущее упражнение. В этот раз бот должен сам найти этот путь со стартовой точки и до финиша; вы должны будете запустить программу только один раз.

\b;Комментарий
Лабиринт слегка отличается от предыдущего, но это не важно, так как программа приспособится к тому, что она "видит".

\image tlaby1 10 10;
\b;Общий принцип
Используйте бесконечный цикл \c;\l;while\u cbot\while;\n;, чтобы выполнять предыдущую несколько раз:
\s;\c;while ( true )
\s;{
\s;	\n;Если спереди нет ничего, идти вперед\c;
\s;	\n;Если слева ничего нет, повернуть налево\c;
\s;	\n;Если саправа ничего нет, повернуть направо\c;
\s;}
\n;
Внутри цикла \c;while\n; замените инструкции \c;return\n; на инструкции \c;\l;continue\u cbot\continue;\n;. \c;return\n; приведет к выходу из программы, что не совсем то, что нам нужно. \c;continue\n; просто продолжит выполнение программы с самого начала цикла \c;\l;while\u cbot\while;\n;:
\s;\c;if ( front == null )
\s;{
\s;	move(5);
\s;	continue;
\s;}
\n;
\b;Помните
Программа из предыдущего упражнения :
\c;
\s;object   front, left, right;
\s;
\s;front = radar(Barrier,   0, 45, 0, 5);
\s;left  = radar(Barrier,  90, 45, 0, 5);
\s;right = radar(Barrier, -90, 45, 0, 5);
\s;
\s;if ( front == null )
\s;{
\s;	move(5);
\s;	return;
\s;}
\s;if ( left == null )
\s;{
\s;	turn(90);
\s;	move(5);
\s;	return;
\s;}
\s;if ( right == null )
\s;{
\s;	turn(-90);
\s;	move(5);
\s;	return;
\s;}
\n;
\b;Помощь
Если вам понадобится помощь, шелкните на гиперлинке инструкций \c;\l;radar\u cbot\radar;\n;, \c;\l;if\u cbot\if;\n;, \c;\l;move\u cbot\move;\n; или \c;\l;turn\u cbot\turn;\n;.

\t;См. также
\l;Программирование\u cbot;, \l;типы\u cbot\type; и \l;категории\u cbot\category;.