Ограничения: время – 200ms/500ms, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Напишите в Blockly программу для робота-чертежника, который может перемещаться только между точками с целыми координатами
и поворачивать на углы, кратные 45 градусам. При движении робот проводит линию.
После выполнения программы робот должен вернуться в начальную точку в центре ствола, нарисовав ёлочку
высотой `n` веток. Длина нижней ветки ёлки (расстояние от ствола) должна быть равна `n`, длина остальных веток ёлки должна
уменьшаться на 1 от нижней к верхней. На рисунке показаны ёлочки высотой 2 и 4 ветки.
![Ёлка 2](50477.png) ![Ёлка 4](50473.png)
Для написания программы управления роботом вы можете использовать следующие блоки, заданные в категории "Робот":
![float:left|Команды робота](50479.png)
Первый блок позволяет получить количество веток `n` (вы можете задавать это значение в соответствующем поле).
Второй блок указывает роботу двигаться вперед в текущем направлении.
При этом робот перемещается в соседнюю точку с целыми координатами, как показано на рисунке.
![width:150px|Направления](50475.png)
Третий блок указывает роботу изменить направление на указанный угол по часовой стрелке (для положительных значений) или против часовой стрелки (для отрицательных значений).
Первоначально робот направлен направо:
![Направления](50476.png)
Например, чтобы нарисовать треугольник, нужно выполнить следующие команды:
![Треугольник](50474.png)
Следующие пять блоков позволяют выполнять арифметические вычисления, проверять четность и сравнивать значения между собой.
Девятый блок дает возможность повторить выполнение некоторой группы блоков. Например, для рисования восьмиугольника можно выполнить программу:
![восьмиугольник](50478.png)
Последние два блока позволяют выбрать выполняемую группу блоков в зависимости от условия. В настройках блока (символ шестеренки) можно
добавить или убрать дополнительные ветки выбора. После завершения настройки нужно повторно нажать на символ шестерёнки.
Для создания переменной в категории "Переменные" нужно щелкнуть по кнопке "Создать переменную" и ввести её название.
После этого в категории "Переменные" появятся блоки для получения и изменения значения переменной.
Для запуска программы используйте кнопки:
![Кнопки](50472.png)
Первая кнопка позволяет отправить ваше решение для проверки в проверяющую систему соревнований, вторая кнопка выполняет запуск программу локально, третья –
пошаговое выполнение или временная остановка программы, четвертая -- завершение выполнения программы, после которой программа будет выполняться сначала.
Две кнопки над полем для рисования позволяют менять масштаб изображения как во время выполнения программы, так и после.
*Система оценки и описание подзадач*
В этой задаче 10 тестов для `n` от 1 до 10, каждый тест оценивается в 10 баллов. Баллы за каждый тест начисляются независимо.
По запросу сообщается результат окончательной проверки на каждом тесте.
---
Для написания программы для робота используется [специальная версия среды Blockly](blockly/2785.html).
Вы можете использовать полную среду Blockly при решении других задач этого соревнования, выбрав пункт Blockly
в информационном меню задачи.