Dzisiejsze doodle Google dotyczy Świętowania 50-lecia kodowania dzieci : celem jest zaprogramowanie ścieżki małego króliczka, aby mógł zjeść wszystkie marchewki. Istnieją 4 rodzaje bloków (patrz zdjęcia poniżej):
Od lewej do prawej:
O("...", k)
= kawałek pomarańczy: są tofor
pętle, które wykonują k razy program"..."
.G
= zielony kawałek: jeśli możesz, idź o krok do przodu, w przeciwnym razie nic nie róbBl
= niebieski kawałek: skręć w prawo i pozostań na tym samym blokuBr
= niebieski kawałek: skręć w lewo i pozostań na tym samym bloku
Powyższy kod można zapisać jako
O(O(G G Br, 4) Bl Bl, 23)
Każdy blok ( G, Bl, Br, O(...,k)
) liczy się jako 1 jednostka, więc ten program ma długość 7. Uwaga: wartość k
jest zawarta w 1 jednostce O
.
Istnieje 6 poziomów. Aby ukończyć poziom, musisz zjeść wszystkie marchewki. Nie ma problemu, jeśli twój program nie jest w pełni wykonany, poziom kończy się bezpośrednio, gdy zjesz ostatnią marchewkę.
Zakładamy, że wszystkie 4 rodzaje bloków są dostępne na każdym poziomie.
Twoim zadaniem jest znalezienie jednego programu, który rozwiąże każdy poziom gry.
Najkrótszy program w blokach wygrywa.
Zrzuty ekranu z każdego poziomu:
Poziom 1:
Poziom 2:
Poziom 3:
Poziom 4:
Poziom 5:
Poziom 6:
źródło
Właściwie znalazłem rozwiązanie z 8 blokami
źródło
Ręcznie znaleziony, 9 bloków
O(O(GRGLGR,4)L,4)
Zacząłem od oczywistego
O(O(GGR,4)L,4)
rozwiązania poziomów 1-5, a następnie wypróbowałem kilka wariantów, dodając efektywne ruchy zerowe na tych poziomach, aby znaleźć taki, który ukończyłby poziom 6. Najkrótszy to prosty ruch w prawo-w przód-w lewo na środku każdego „mostu” „więc ruch do przodu nie przyniósł żadnego efektu.źródło
O(O(GGR,4)L,4)
” obala, że najkrótszym rozwiązaniem dla poziomu 4 jest 7, jak pokazano w grze.