Za radą pani Pac-Man, która martwi się, że ma nadwagę, Pac-Man postanowił śledzić swoje codzienne spożycie Pac-Dot. Pomóż mu policzyć liczbę Pac-Dots na danej ścieżce w labiryncie!
Labirynt
Aby pomóc Ci zbudować własne kodowanie labiryntu, możesz uzyskać tutaj surowe dane .
Podróż Pac-Mana
W kontekście tego wyzwania obowiązują następujące zasady:
- Po pierwsze, dobra wiadomość: duchów nie ma.
- Pac-Man zawsze rozpoczyna wyścig w miejscu wskazanym na powyższym obrazku, kierując się na wschód. W pozycji początkowej nie ma Pac-Dot.
- Tak długo, jak podąża prostą ścieżką, przechodzi do kolejnych pól.
- Kiedy napotka zwrot o 90 ° bez żadnej innej dostępnej ścieżki (pomarańczowe kwadraty na mapie), automatycznie i systematycznie wykonuje zwrot.
- Kiedy napotka skrzyżowanie, na którym dostępnych jest kilka ścieżek (zielone kwadraty na mapie), może albo iść w tym samym kierunku - jeśli dotyczy - lub wybrać inny kierunek (w tym zawracanie).
- Kiedy Pac-Man przechodzi przez jedno z wyjść w środkowej lewej lub środkowej prawej części labiryntu, natychmiast pojawia się po przeciwnej stronie.
- Pac-Man zjada wszystkie Pac-Dots na ścieżce, którą podąża. Po zjedzeniu Pac-Dot jest ono usuwane z labiryntu.
Wyzwanie
Wkład
Otrzymasz ciąg opisujący zachowanie Pac-Mana na skrzyżowaniach, do których dojdzie. Ciąg ten będzie się składał z następujących znaków:
L
: wykonaj obrót o 90 ° w lewoR
: wykonaj obrót o 90 ° w prawoF
: idź do przodu (bez zmiany kierunku)B
: cofnij się (zawróć)
Kiedy wszystkie postacie zostaną przetworzone, Pac-Man zatrzymuje się na następnym skrzyżowaniu, jakie napotka.
Wydajność
Musisz wydrukować lub wydrukować liczbę Pac-Dots zjedzonych wzdłuż ścieżki wejściowej.
Zasady
- Możesz napisać pełny program lub funkcję.
- Dane wejściowe można przyjmować wielkimi lub małymi literami, jako ciąg znaków lub tablicę znaków. Możesz także użyć innych znaków (ale tylko jeden znak na kierunek) lub liczb całkowitych w
[0 .. 9]
. Jeśli to zrobisz, podaj to wyraźnie w swojej odpowiedzi. - Możesz założyć, że dane wejściowe są zawsze prawidłowe. (JsFiddle poniżej wykryje błędy, ale nie powinieneś.)
- To jest golf golfowy, więc wygrywa najkrótszy kod w bajtach.
- Standardowe luki są zabronione.
Wskazówka
Przechowywanie dokładnego kształtu labiryntu może nie być wymagane ani optymalne.
Przypadki testowe i demo
W tym jsFiddle można przetestować następujące przypadki testowe - lub dowolne inne dane wejściowe .
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!