Król Julian musi przedostać się przez dżunglę, ale jest leniwy. Chce, żeby komputer mógł dla niego obliczyć trasę przez dżunglę.
Korzystając ze STDIN, uzyskaj mapę dżungli do złamania komputera. Będzie on miał następujący format:
01001E
010110
000P00
1100J1
S00111
Sposób działania mapy dżungli to:
0
jest ziemia, że Julian może się poruszać.
1
jest gęstą nieprzejezdną dżunglą.
P
jest obszarem z drapieżnikami, którego należy unikać za wszelką cenę.
J
jest stosunkowo gęstą dżunglą. Stwory Juliana mogą przedrzeć się przez jeden z nich przed zmęczeniem.
S
tam zaczyna się Julian. Może być w dowolnym miejscu na mapie.
E
tam, gdzie Julian chce iść; koniec ścieżki. Może być również w dowolnym miejscu na mapie, tak jak każdy inny kafelek.
Każda postać jest kafelkiem na mapie. Podziały linii wskazują nowy rząd płytek. Jeśli STDIN w Twoim języku nie obsługuje podziałów wierszy, podział wiersza musi zostać zastąpiony spacją, aby oznaczać nowy wiersz.
Aby poruszać się między kafelkami, musisz wyprowadzić ciąg za pomocą STDOUT zawierającego następujące znaki specjalne:
F
- Naprzód
B
- Do tyłu
L
- Obróć Juliana w lewo (90 stopni w lewo)
R
- Obróć Juliana w prawo (90 stopni w prawo)
M
- Stwory niszczą J
kafelek o 1 płytkę naprzód od Juliana, jeśli taki istnieje ( M
wystarczy go wyczyścić, nadal trzeba się na niego przenieść)
Możliwym wyjściem byłoby:
RFFLFRFMFLFRFLFF
Który rozwiązuje mapę powyżej.
Uwagi:
Jeśli Twój program wyświetli rozwiązanie, które uderza w drapieżniki, gra się kończy.
Jeśli trafisz w nieprzejezdną dżunglę, po prostu odbij się z powrotem do miejsca, w którym byłeś, zanim wpadłeś w gęstą dżunglę, twarzą w tę samą stronę. (W stronę dżungli)
Julian zaczyna być skierowany do góry. (^ W ten sposób ^)
Dane wyjściowe nie muszą być najszybszym rozwiązaniem
FFF
iFBFBFBFBFBFFF
są takie same. Jednak uzyskanie najszybszego możliwego rozwiązania daje premię w wysokości -10% liczby bajtów.Jeśli mapa jest nieprawidłowa, STDOUT „Nieprawidłowa mapa”. (Dotyczy to także sytuacji, gdy mapa jest nierozwiązywalna)
Mapa nie może mieć wierszy ani kolumn o różnych długościach; to czyni to nieważnym.
Twoja odpowiedź powinna być nieco zgodna z tym formatem:
#Language name, *n* bytes
code
Explanation (optional)
To jest golf golfowy , więc wygrywa najkrótszy kod w bajtach.
P
kafelek naprawdę dodaje coś innego niż1
kafelek? Nie mogę sobie wyobrazić wiarygodnego rozwiązania, które traktuje je inaczej.Odpowiedzi:
Groovy, 656 bajtów
To było za długo ...
Wyjście dla labiryntu:
Nie golfowany:
Niedługo spróbuję tego ponownie w Pythonie, aby sprawdzić, czy mogę go bardziej skrócić.
źródło