Herausforderung
Sie haben einem Freund eine Karte gegeben, die ungefähr so aussieht:
|
/
|
/
|
\
|
\
D
Eine einfache Karte, die oben beginnt und unten endet. Leider versteht es dein Freund nicht. Kannst du die Karte entschlüsseln, damit er sie lesen kann?
Eingang
Die Eingabe ist eine Kette von Zeichen , bestehend aus |, /, \, D, ^, Y, (Raum) , und neue Zeilen.
|sagt, in der gleichen Spalte zu bleiben.\fordert Sie auf, zur rechten und unteren Spalte zu wechseln 1./fordert Sie auf, zur linken und unteren Spalte zu wechseln 1.Dmarkiert das Ziel.^(falls vorhanden) weist auf eine Teilung des Pfades hin.Y(falls vorhanden) erzählt von einer Wiedervereinigung von Pfaden. Behandle es wie ein|.
Die Eingabe wird so angeordnet, dass sie eine Art Pfad ergibt:
|
|
\
|
^
/ \
/ |
D |
Zwischen zwei Pfaden wird immer ein Leerzeichen eingefügt, und alle Pfade werden entweder wieder verbunden oder erreichen die letzte Zeile der Eingabe. Es wird nur einen Split pro Karte geben. Die Länge der Eingabekarte ist unbegrenzt. Es wird nie mehr als zwei Wege geben.
Ausgabe
Die Ausgabe sollte eine Folge von Anweisungen sein.
- „ L “ sollte Ihr Freund zu bewegen sagen L inks und vorwärts 1 Schritt.
- „ R “ sollte Ihr Freund zu bewegen sagen R echts und vorwärts 1 Schritt.
- " F " sollte deinem Freund sagen, dass er einen Schritt nach vorne gehen soll.
Für die Eingabebeispielzuordnung lautet die Ausgabe wie folgt:
F F L F R R R
Beachten Sie, dass Ihr Freund oben auf der Karte beginnt und nach unten zeigt. Geben Sie die Anweisungen aus seiner Perspektive. Für eine Instanz von "^" muss Ihr Programm in der Lage sein, den Pfad zu wählen, der zum Ziel führt (D). Wenn die beiden Pfade erneut kombiniert werden, muss Ihr Programm den geradesten Pfad (den mit den meisten |s) auswählen, dem Sie folgen möchten. Anweisungen müssen durch Leerzeichen getrennt sein und mit D enden .
Beispiele
Eingang
|
|
\
\
^
/ |
| |
\ |
\ \
\ \
\ /
Y
D
Ausgabe
F F L L L F F F L L R F
Da der Pfad ganz links nur 1 enthält |, verwenden wir den Pfad ganz rechts mit 3.
Eingang
\
|
/
|
\
|
/
D
Ausgabe
L F R F L F R
Eingang
/
\
/
\
^
\ \
D \
Ausgabe
R L R L R L
Andere Details
- Dies ist Codegolf, also gewinnt die Person mit dem kürzesten Code am kommenden Mittwoch, dem 19. August.
- Konstruktives Feedback willkommen und sehr geschätzt.
- Teilweise inspiriert von A Map to Hidden Treasure
- Fühlen Sie sich frei, den Titel in etwas Kreativeres zu ändern.
- Wenn Sie Fehler finden, die ich gemacht habe, korrigieren Sie sie.
- Und natürlich viel Spaß.
Vielen Dank!
Ein bisschen spät vielleicht, aber UndefinedFunction ist die Gewinner-Codierung in JavaScript! Vielen Dank an alle, die eingetreten sind. Andere Einträge werden nicht akzeptiert.
Lfür die ^und zwei Lfür die beiden geben /? Und warum haben Sie Fam Ende des YBeispiels noch zwei hinzugefügt ?
L L, was ich denke sollteL L L. Das Beispiel mit hatYnoch einen1am Ende und scheint auch andere Fehler zu haben. Ich habe die Karte gelesen, alsF F R R R F F F R R L Fob ich die Regeln richtig verstehe.