Auf Anraten von Frau Pac-Man, die besorgt ist, dass er übergewichtig wird, hat Pac-Man beschlossen, seinen täglichen Pac-Dot-Konsum im Auge zu behalten. Hilf ihm, die Anzahl der Pac-Dots auf einem bestimmten Pfad im Labyrinth zu zählen!
Das Labyrinth
Um Ihnen bei der Erstellung Ihrer eigenen Codierung des Labyrinths zu helfen, können Sie hier einige Rohdaten abrufen .
Pac-Man's Reise
Im Rahmen dieser Herausforderung gelten folgende Regeln:
- Erstens die gute Nachricht: Die Geister sind nicht da.
- Pac-Man startet sein Rennen immer an der auf dem obigen Bild angegebenen Position in Richtung Osten. An der Startposition befindet sich kein Pac-Dot.
- Solange er einem geraden Weg folgt, rückt er immer weiter auf die nächsten Plätze vor.
- Wenn er auf eine 90 ° -Drehung trifft, ohne dass ein anderer Weg verfügbar ist (orangefarbene Quadrate auf der Karte), nimmt er die Drehung automatisch und systematisch vor.
- Wenn er auf eine Kreuzung stößt, an der mehrere Pfade zur Verfügung stehen (grüne Quadrate auf der Karte), kann er entweder in derselben Richtung weiterfahren (falls zutreffend) oder eine andere Richtung wählen (einschließlich einer Kehrtwende).
- Wenn Pac-Man einen der Ausgänge auf der linken oder rechten Seite des Labyrinths passiert, erscheint er sofort wieder auf der gegenüberliegenden Seite.
- Pac-Man frisst alle Pac-Dots auf dem Pfad, dem er folgt. Sobald ein Pac-Dot gegessen wurde, wird er aus dem Labyrinth entfernt.
Die Herausforderung
Eingang
Sie erhalten eine Zeichenfolge, die das Verhalten von Pac-Man an den Kreuzungen beschreibt, die er erreichen wird. Diese Zeichenfolge besteht aus folgenden Zeichen:
L
: 90 ° nach links drehenR
: 90 ° nach rechts drehenF
: vorwärts gehen (keine Richtungsänderung)B
: gehe rückwärts (mach eine Kehrtwende)
Wenn alle Zeichen verarbeitet wurden, stoppt Pac-Man an der nächsten Kreuzung, auf die er trifft.
Ausgabe
Sie müssen die Anzahl der Pac-Dots drucken oder ausgeben, die entlang des Eingabepfads verbraucht wurden.
Regeln
- Sie können ein vollständiges Programm oder eine Funktion schreiben.
- Sie können Eingaben entweder in Groß- oder Kleinbuchstaben als Zeichenfolge oder als Array von Zeichen vornehmen. Sie können auch andere Zeichen (aber nur ein Zeichen pro Richtung) oder ganze Zahlen in verwenden
[0 .. 9]
. Wenn Sie dies tun, geben Sie dies bitte in Ihrer Antwort deutlich an. - Sie können davon ausgehen, dass die Eingabe immer gültig ist. (Das folgende jsFiddle erkennt Fehler, aber das solltest du nicht.)
- Das ist Code-Golf, also gewinnt der kürzeste Code in Bytes.
- Standardlücken sind verboten.
Hinweis
Es ist möglicherweise weder erforderlich noch optimal, die genaue Form des Labyrinths zu speichern.
Testfälle und Demo
Die folgenden Testfälle - oder andere Eingaben - können in diesem jsFiddle getestet werden .
1. Input : ""
Output : 1
Comment: Pac-Man just advances to the first junction, eats the Pac-Dot on it and stops.
2. Input : "L"
Output : 7
3. Input : "FFR"
Output : 13
4. Input : "LFLR"
Output : 17
Comment: Pac-Man will exit on the middle right side and re-appear on the left side.
5. Input : "BBBB"
Output : 2
6. Input : "BRRFFFL"
Output : 15
7. Input : "LFFRLFFFFRF"
Output : 50
8. Input : "BRFRLRFRLFR"
Output : 54
Comment: Pac-Man will exit on the middle left side and re-appear on the right side.
9. Input : "FFLRLFFLLLLFFBFLFLRRRLRRFRFLRLFFFLFLLLLFRRFBRLLLFBLFFLBFRLLR"
Output : 244
Comment: All cleared!