Googles Doodle zum Thema Kindercodierung: kürzestes Programm zum Lösen aller Ebenen

26

In Google Doodle geht es heute darum, 50 Jahre Kids Coding zu feiern : Das Ziel ist es, den Weg eines kleinen Häschens so zu programmieren, dass er alle Karotten frisst. Es gibt 4 Arten von Blöcken (siehe Bilder unten):

Blockbeschreibung

Von links nach rechts:

  • O("...", k)= oranges Stück: Dies sind forSchleifen, die das k-fache des Programms ausführen "...".
  • G = grünes Stück: Gehe einen Schritt vorwärts, wenn du kannst, sonst tu nichts
  • Bl = blaues Stück: Biegen Sie rechts ab und bleiben Sie auf dem gleichen Block
  • Br = blaues Stück: Biegen Sie links ab und bleiben Sie auf dem gleichen Block

großes Programm

Der obige Code kann geschrieben werden als

O(O(G G Br, 4) Bl Bl, 23)

Jeder Block ( G, Bl, Br, O(...,k)) zählt als 1 Einheit, daher hat dieses Programm die Länge 7. Beachten Sie, dass der Wert von kin der Einheit 1 von enthalten ist O.

Es gibt 6 Ebenen. Um ein Level zu beenden, musst du alle Karotten essen. Es ist kein Problem, wenn Ihr Programm nicht vollständig ausgeführt wird. Der Level endet direkt, wenn Sie die letzte Karotte essen.

Wir gehen davon aus, dass alle 4 Arten von Blöcken in jedem Level verfügbar sind.

Ihre Aufgabe ist es, ein einziges Programm zu finden, das alle Ebenen des Spiels löst.
Kürzestes Programm in Blöcken gewinnt.

Screenshots der einzelnen Ebenen:
Ebene 1: Ebene 2: Ebene 3: Ebene 4: Ebene 5: Ebene 6:Level 1 Screenshot
Level 2 Screenshot
Level 3 Screenshot
Level 4 Screenshot
Level 5 Screenshot
Level 6 Screenshot

Surb
quelle

Antworten:

24

Nicht meine Antwort

6 Blöcke

Der Benutzer Alex hat eine kürzere Lösung mit der Länge 6 gefunden. Ich kann bestätigen, dass die Lösung funktioniert:

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

6 Blöcke

Sie haben versucht, diese Frage zu bearbeiten, um diese Antwort hinzuzufügen. Ich gehe also davon aus, dass sie hier angezeigt werden soll. Mir gefällt nicht, wie das Reputationssystem hier funktioniert.

Die Nachricht, die sie hinterlassen haben:

Der Editor hat keine 10 Wiederholungen, aber eine Lösung der Länge 6. O (O (RGG, 6) R, 5)

Nach ein paar Tagen antworteten sie erneut, indem sie den Beitrag bearbeiteten: "Danke, dass Sie dies getan haben. Wenn Sie dies bearbeiteten, war dies die einzige Möglichkeit, eine Nachricht zu erhalten. Ich bin froh, dass sie überhaupt existiert du willst aber. "

Alte Antwort

7 Blöcke

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

Geduld erforderlich.

Bearbeiten: Das Bild war falsch. 7 Blöcke

Reinis Mazeiks
quelle
Guter Fund! Ich habe diesen Ansatz ausprobiert, bin aber bei dieser bestimmten Kombination nicht vorgekommen, bevor ich aufgegeben habe und meine 9-Block-Lösung gewählt habe.
Sparr
2
Der Benutzer Alex behauptet, eine kürzere Lösung gefunden zu haben.
Jonathan Frech
@ JonathanFrech in der Tat hat er! Dieses Limit von 10 Wiederholungen ist ärgerlich. Ich verstehe, dass wir Spam verhindern müssen, aber sollten neue Benutzer nicht zumindest eine moderierte Möglichkeit haben, Antworten zu posten? Redefreiheit und so.
Reinis Mazeiks
@RM Ich war auch ein bisschen irritiert, als ich das Problem sah. Ich denke, SE ist einfach nicht für einmalige Antworten gedacht, da dies wahrscheinlich für Alex frustrierend ist ...
Jonathan Frech
1
Warum haben Sie dies in Ihre eigene alte Antwort geändert, anstatt sie als neue Antwort zu veröffentlichen?
Sparr
12

Eigentlich habe ich eine Lösung mit 8 Blöcken gefunden

O(O(O(G,4)R,4)GGR,4)
samuelleal
quelle
6

Manuell gefunden, 9 Blöcke

O(O(GRGLGR,4)L,4)

Ich begann mit dem offensichtlichen, O(O(GGR,4)L,4)dass die Level 1-5 gelöst wurden, und versuchte dann ein paar Variationen, die effektiv Nullbewegungen auf diesen Levels hinzufügten, um eine zu finden, die Level 6 vervollständigen würde. Die kürzeste war ein einfaches Rechts-Vor-Links in der Mitte jeder "Brücke "so hatte die vorwärtsbewegung keine wirkung.

Sparr
quelle
1
Dies ist wahrscheinlich optimal, was bedeutet, dass die Herausforderung bereits vorbei ist. :(
totalhuman
6
@totallyhuman stellt sich heraus, dass die Community damit noch nicht ganz fertig ist: P
HyperNeutrino
"Das Offensichtliche O(O(GGR,4)L,4)" widerlegt, dass die kürzeste Lösung für Level 4 7 ist, wie im Spiel gezeigt.
mik
1
@mik Die Spielelösungen sind nicht darauf angewiesen, die Schleifengröße zu ändern oder Bewegungen auszuführen, die nichts bewirken.
Neil
@totallyhuman Sie prognostizieren, war ganz falsch :). Noch mehr als ein Jahr nach dem Absenden der Frage wurde eine bessere Lösung gefunden.
Surb