Przesłanka
Ostatnio byłem około pół godziny wcześniej na spotkanie i postanowiłem zaczekać na zewnątrz. Stwierdziłem również, że wyglądałoby dziwnie, gdybym stał bez ruchu przed domem. Dlatego postanowiłem wybrać się na szybki spacer po ograniczonym obszarze. Doszedłem również do wniosku, że jeśli zacznę chodzić w kółko, będzie to oczywiste, że chodzę po okolicy. Zainspirowałem się więc do stworzenia pierwszego wyzwania Code Golf.
Specyfikacja
Otrzymasz listę, mapę obszaru, która będzie zawierać albo, " "
albo "#"
które reprezentują wolne przestrzenie i przeszkody. Wolne miejsca można przekroczyć tylko raz, a przejście zajmuje 1 minutę. Twoja początkowa pozycja będzie oznaczona "@"
tradycją roguelike, a cel będzie reprezentowany przez, "$"
ponieważ to właśnie tam stracisz. Otrzymasz również liczbę całkowitą, która będzie oznaczać, ile minut musisz marnować, zanim nie będziesz wyglądać, jakbyś się wtrącał. Kiedy wylądujesz na"$"
, będzie to musiała być dokładna ilość minut (więc jeśli odliczałeś, będzie to 1 na sąsiedniej płytce, i być 0 na kafelku). Zawsze będzie możliwe dotarcie do celu. Twój program lub funkcja będzie musiała zwrócić listę pokazującą najkrótszą ścieżkę za pomocą <,>, ^ i v, aby przedstawić cztery możliwe kierunki.
Przykłady
Wkład:
[[" ", " ", " ", " "],
["@", " ", " ", "$"],
[" ", " ", " ", " "],
[" ", " ", " ", " "]]
i
5
Ouput:
[[">", ">", ">", "v"],
["^", " ", " ", "$"],
[" ", " ", " ", " "],
[" ", " ", " ", " "]]
Wkład:
[[" ", "#", " ", " ", " "],
[" ", "#", " ", " ", " "],
["@", "#", " ", "$", " "],
[" ", " ", " ", " ", " "],
[" ", "#", " ", " ", " "],
[" ", "#", " ", " ", " "]]
i
7
Wydajność:
[[" ", "#", " ", " ", " "],
[" ", "#", ">", "v", " "],
["v", "#", "^", "$", " "],
[">", ">", "^", " ", " "],
[" ", "#", " ", " ", " "],
[" ", "#", " ", " ", " "]]
Wkład:
[[" ", "#", " ", " ", " "],
[" ", "#", " ", " ", " "],
["@", "#", " ", "$", " "],
[" ", " ", " ", " ", " "],
[" ", "#", " ", " ", " "],
[" ", "#", " ", " ", " "]]
i
17
Wydajność:
[[" ", "#", " ", "v", "<"],
[" ", "#", " ", "v", "^"],
["v", "#", " ", "$", "^"],
[">", ">", "v", ">", "^"],
[" ", "#", "v", "^", "<"],
[" ", "#", ">", ">", "^"]]
Zasady
- Obowiązują standardowe luki
- Każdy kafelek można przesunąć tylko raz
- Dokładna ilość czasu musi zostać spędzona na planszy
- W przypadku wielu ścieżek musi być wyświetlana tylko jedna ścieżka
- To jest pytanie do golfa, więc wygrywa najkrótsza odpowiedź
- Zgodnie z pytaniem user202729 w komentarzach, możesz założyć prawidłowe dane wejściowe.
Dodaj komentarz, jeśli wymagane są dalsze wyjaśnienia