Сегодняшний дудл Google посвящен празднованию 50-летия детского кодирования : цель состоит в том, чтобы запрограммировать путь маленького зайчика, чтобы он мог съесть всю морковь. Есть 4 типа блоков (см. Рисунки ниже):
Слева направо:
O("...", k)
= оранжевый кусок: этоfor
циклы, которые k раз исполняют программу"..."
.G
= зеленая фигура: сделайте один шаг вперед, если можете, иначе ничего не делайтеBl
= синий кусок: повернуть направо и остаться на том же блокеBr
= синий кусок: поверните налево и оставайтесь на том же блоке
Код выше можно записать как
O(O(G G Br, 4) Bl Bl, 23)
Каждый блок ( G, Bl, Br, O(...,k)
) считается за 1 единицу, поэтому эта программа имеет длину 7. Обратите внимание, что значение k
включено в 1 единицу O
.
Есть 6 уровней. Чтобы пройти уровень, вам нужно съесть всю морковь. Это не проблема, если ваша программа не полностью выполнена, уровень заканчивается сразу, когда вы едите последнюю морковку.
Мы предполагаем, что все 4 типа блоков доступны на каждом уровне.
Ваша задача - найти единую программу, которая решает все уровни игры.
Кратчайшая программа в блоках выигрывает.
Снимки экрана каждого уровня:
Уровень 1:
Уровень 2:
Уровень 3:
Уровень 4:
Уровень 5:
Уровень 6: