König Julian muss durch den Dschungel, aber er fühlt sich faul. Er möchte, dass ein Computer für ihn eine Route durch den Dschungel berechnen kann.
Mit STDIN erhalten Sie eine Karte des Dschungels, die der Computer knacken kann. Es wird folgendes Format haben:
01001E
010110
000P00
1100J1
S00111
Die Funktionsweise der Dschungelkarte ist:
0
ist der Grund, warum Julian sich fortbewegen kann.
1
ist dichter unpassierbarer Dschungel.
P
ist ein Gebiet mit Raubtieren, das Sie unbedingt meiden müssen.
J
ist relativ dicker Dschungel. Julians Schergen können eine davon durchbrechen, bevor sie ermüden.
S
Hier beginnt Julian. Es kann überall auf der Karte sein.
E
ist, wohin Julian gehen will; das Ende des Weges. Es kann sich auch überall auf der Karte befinden, genau wie bei jeder anderen Kachel.
Jedes Zeichen ist eine Kachel auf der Karte. Zeilenumbrüche kennzeichnen eine neue Kachelreihe. Wenn STDIN in Ihrer Sprache keine Zeilenumbrüche unterstützt, muss der Zeilenumbruch durch ein Leerzeichen ersetzt werden, um eine neue Zeile zu kennzeichnen.
Um zwischen den Kacheln zu wechseln, müssen Sie eine Zeichenfolge mit STDOUT ausgeben, die die folgenden Sonderzeichen enthält:
F
- Nach vorne
B
- Rückwärts
L
- Julian nach links drehen (90 Grad gegen den Uhrzeigersinn)
R
- Julian nach rechts drehen (90 Grad im Uhrzeigersinn)
M
- Günstlinge zerstören ein J
Plättchen 1 vorwärts von Julian, wenn es eines gibt ( M
räumt das Plättchen einfach aus, du musst immer noch darauf ziehen)
Eine mögliche Ausgabe wäre:
RFFLFRFMFLFRFLFF
Welches löst die Karte oben.
Anmerkungen:
Wenn Ihr Programm eine Lösung ausgibt, die Raubtiere trifft, ist das Spiel vorbei.
Wenn Sie auf unpassierbaren Dschungel treffen, springen Sie einfach dorthin zurück, wo Sie sich befanden, bevor Sie in den dichten Dschungel gerieten und auf die gleiche Weise dastanden. (In Richtung Dschungel)
Julian fängt an nach oben zu schauen. (^ Auf diese Weise ^)
Die Ausgabe muss nicht die schnellste Lösung sein
FFF
undFBFBFBFBFBFFF
ist dieselbe. Die Ausgabe der schnellstmöglichen Lösung bietet jedoch einen Bonus von -10% für die Bytezahl.Wenn eine Karte ungültig ist, STDOUT "Ungültige Karte". (Das schließt ein, wenn die Karte unlösbar ist)
Eine Karte kann keine Zeilen oder Spalten unterschiedlicher Länge haben. das macht es ungültig.
Ihre Antwort sollte ungefähr so aussehen:
#Language name, *n* bytes
code
Explanation (optional)
Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes.
P
Kachel wirklich etwas anderes als eine1
Kachel hinzu? Ich kann mir keine plausible Lösung vorstellen, die sie anders behandelt.Antworten:
Groovy, 656 Bytes
Das war zu lang
Ausgabe für das Labyrinth:
Ungolfed:
Ich werde es in Kürze in Python erneut versuchen, um zu sehen, ob ich es weiter verkürzen kann.
quelle