Alphys, der Royal Scientist des Untergrunds, hat einen Prototyp für ein neues Puzzle fertiggestellt. Sie scheint jedoch niemanden zu finden, der bereit ist, es zu testen.
Die Regeln ihres Puzzles lauten wie folgt:
Das Ziel ist es, von der Mitte auf der linken Seite zur rechten Seite zu gelangen. Beginnen Sie bei Rätseln mit gerader Höhe auf dem unteren der beiden mittleren Kacheln. (Beispiele: In einem 4x4-Array mit Nullindex wäre die Startposition [2,0] - Zeile 2, Spalte 0. In einem 5x5-Array mit Nullindex wäre die Startposition [2,0] - Zeile 2, Spalte 0.)
Jede farbige Fliese hat ihre eigene "sadistische" Funktion:
- Rosa und grüne Kacheln (dargestellt als "P" und "G") tun nichts
- Rote und gelbe Kacheln ("R", "Y") sind unpassierbar.
- Orange Kacheln ("O") lassen den Spieler nach Orangen riechen
- Lila Kacheln ("U") zwingen den Spieler zum nächsten Kacheln in der Richtung, in die er schaut, und lassen sie nach Zitronen riechen
- Blaue Kacheln ("B") sind passierbar, solange der Spieler nicht nach Orangen riecht.
Um die Geschmacksmechanik zu verdeutlichen, bleibt der Geruch eines Spielers unbegrenzt bestehen oder wird durch ein anders riechendes Plättchen überschrieben. Wenn ein Spieler auf ein orangefarbenes Plättchen tritt, riecht er wie Orangen, bis er auf ein lila Plättchen tritt.
Zusätzlich wird eine gelbe Fliese, die vertikal oder horizontal neben einer blauen Fliese platziert wird, dazu führen, dass die blaue Fliese ebenfalls unpassierbar wird.
Ihre Aufgabe ist es, ein Programm oder eine Funktion zu schreiben, die ein zweidimensionales Zeichenarray (oder ein 1D-Zeichenkettenarray oder ein anderes gültiges Format) akzeptiert, das das Layout des Puzzles als Eingabe darstellt und sowohl das ursprüngliche Puzzlespiel als auch das gelöste Puzzlespiel mit Sternchen oder einigen ausgibt anderes Zeichen, das den korrekten Pfad anzeigt. Angenommen, das gegebene Rätsel ist lösbar.
Verwenden Sie dieses Puzzle als Beispiel:
BGYBG
PGPBG
PUBPB
OUGYB
PPOPP
Ihr Programm würde folgendes ausgeben:
BGYBG
PGPBG
PUBPB
OUGYB
PPOPP
BGYBG
PGPBG
*****
OUGYB
PPOPP
Jedes Puzzle verwendet wird, muss erzeugt werden unter Verwendung dieser .
Es gelten die Standard-Code-Golfregeln. Die besten Antworten sind für jede Sprache die kürzesten. Die Antworten müssen die Sprache, die Anzahl der Bytes und drei Testfälle enthalten. Die ersten beiden können ein beliebiges Layout sein, das dritte muss jedoch sein:
RRRR
RPPR
PUOR
RPBP
quelle
Antworten:
C 529 Bytes
Wir nähern uns dem Rätsel, indem wir zuerst nach rechts gehen, sofern wir nicht blockiert sind, dann aufwärts, dann abwärts und schließlich zurück nach links. Die Suche ist rekursiv und sobald wir einen erfolgreichen Pfad gefunden haben, markieren wir die Leerzeichen in unserer Matrix und kehren zurück.
Probieren Sie es online
Ungolfed
Beispielausgabe 1
Beispielausgabe 2
Beispielausgabe 3
quelle