Doodle Google'a na temat kodowania dzieci: najkrótszy program rozwiązujący wszystkie poziomy

26

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):

opis bloku

Od lewej do prawej:

  • O("...", k)= kawałek pomarańczy: są to forpę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ób
  • Bl = niebieski kawałek: skręć w prawo i pozostań na tym samym bloku
  • Br = niebieski kawałek: skręć w lewo i pozostań na tym samym bloku

duży program

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ść kjest 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:zrzut ekranu poziomu 1
zrzut ekranu poziomu 2
zrzut ekranu poziomu 3
zrzut ekranu z poziomu 4
zrzut ekranu poziomu 5
zrzut ekranu z poziomu 6

Surb
źródło

Odpowiedzi:

24

Nie moja odpowiedź

6 bloków

Użytkownik Alex znalazł krótsze rozwiązanie, o długości 6. Mogę potwierdzić, że ich rozwiązanie działa:

O(O(Br G G, 6) Br, 5)

6 bloków

Próbowali edytować to pytanie, aby dodać tę odpowiedź, więc zakładam, że chcą, aby była ona tutaj wyświetlana. Nie podoba mi się, jak działa tutaj system reputacji.

Wiadomość, którą zostawili:

Edytor nie ma 10 powtórzeń, ale ma rozwiązanie o długości 6. O (O (RGG, 6) R, 5)

Po kilku dniach odpowiedzieli ponownie, edytując post: „Dzięki za zrobienie tego. Edytowanie tego było jedynym sposobem, w jaki widziałem, aby otrzymać wiadomość. Cieszę się, że w ogóle istnieje. Zapraszam do umieszczenia go w nowym poście, jeśli chcesz jednak. ”

Stara odpowiedź

7 bloków

O(O(G G Br, 4) G Br, 100)

Wymagana cierpliwość.

Edycja: obraz był nieprawidłowy. 7 bloków

Reinis Mazeiks
źródło
Dobre znalezisko! Próbowałem tego podejścia, ale nie zdarzyło mi się na tej konkretnej kombinacji, zanim poddałem się i wybrałem rozwiązanie 9 bloków.
Sparr,
2
Użytkownik Alex twierdzi, że znalazł krótsze rozwiązanie.
Jonathan Frech
@JathanathanFrech rzeczywiście ma! Ten limit 10 powtórzeń jest denerwujący. Rozumiem, że musimy zapobiegać spamowi, ale czy nowi użytkownicy nie powinni mieć przynajmniej moderowanego sposobu publikowania odpowiedzi? Wolność słowa i innych rzeczy.
Reinis Mazeiks
@RM Byłem trochę zirytowany widząc problem. Sądzę, że SE po prostu nie jest przeznaczone do jednorazowych odpowiedzi, ponieważ frustrujące jest to prawdopodobnie dla Alexa ...
Jonathan Frech
1
Dlaczego dokonałeś edycji tego w swojej starej odpowiedzi zamiast publikować ją jako nową odpowiedź?
Sparr
12

Właściwie znalazłem rozwiązanie z 8 blokami

O(O(O(G,4)R,4)GGR,4)
samuelleal
źródło
6

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.

Sparr
źródło
1
Jest to prawdopodobnie optymalne, co oznacza, że ​​wyzwanie już się skończyło. :(
totalnie ludzki,
6
@ totalniehuman okazuje się, że społeczność jeszcze się z tym nie skończyła: P
HyperNeutrino
„Oczywiste O(O(GGR,4)L,4)” obala, że ​​najkrótszym rozwiązaniem dla poziomu 4 jest 7, jak pokazano w grze.
mik
1
@mik Rozwiązania w grach nie polegają na zmianie rozmiaru pętli lub ruchach, które nic nie robią.
Neil,
@ totalniehumaniczny, że prognozowanie było dość błędne :). Jeszcze ponad rok po opublikowaniu pytania znaleziono lepsze rozwiązanie.
Surb