Wyzwanie
Twoim zadaniem jest animowanie Adve the Adventurer poruszającego się w przerażającym labiryncie. Adve jest •
; jest jednak płynny, więc nie przeszkadza mu, że reprezentuje go inna postać.
Aby animować Adve, drukujesz każdą ramkę; ramka to mapa z jego bieżącą lokalizacją. Adve przesuwa się o jedno pole do przodu co turę i nigdy się nie wycofuje. Zaczyna w pierwszym rzędzie, a kończy w ostatnim.
Wejście
Każdy rozsądny format, taki jak ciąg znaków z separatorem lub tablicą ciągów. Możesz założyć, że wejście będzie mapą większą niż 3 * 3, zawierającą tylko jedną możliwą ścieżkę. Jedynymi obecnymi postaciami będą #
i .
Wynik
Ramy.
Przykładowy labirynt ( ok ... labirynt )
Oto mapa bez Adve; pierwsza i ostatnia klatka to ta pusta mapa (ta mapa ma wymiary 9 x 15):
### #####
## #####
## ######
## #
####### #
# ### #
# # # #
# # ###
# #######
# ####
#### ####
#### ###
##### ###
##### ###
##### ###
To jest golf golfowy , więc wygrywa najkrótszy kod w bajtach!
Dokładny wyjście na ten temat można znaleźć tutaj (37 klatek).
Odpowiedzi:
Perl, 84 bajtów
Dzięki @Ton Hospel za poprowadzenie mnie we właściwym kierunku do gry w golfa około 30 bajtów!
Liczba bajtów zawiera 82 bajty kodu i
-0p
flag.Zauważ, że są dwie końcowe spacje i brak końcowej nowej linii (inaczej nie zadziała).
Bierze labirynt jako dane wejściowe jako dane wyjściowe wszystkich potrzebnych ramek, aby Adve mógł z niego wyjść. Zauważ, że Adve jest
&
raczej niż a•
, ponieważ ten ostatni nie jest utf8 (a perl domyślnie nie używa utf8). Uruchom go z-0pE
flagami:Dla oczu stworzyłem też tę animowaną wersję, która jest nieco dłuższa, ale wyczyści terminal między każdym drukiem a snem 0,15 sekundy, więc będzie wyglądać, jakby Adve się poruszał:
źródło
$s="@+"
, nie zdawałem sobie wcześniej sprawy, że@+
zmieni się to tylko w przypadku pomyślnego wyrażenia regularnego.redo
Zamiastwhile
zapisanego jednego lub dwóch bajtów). Wszelkie wskazówki na temat tego, jak bardziej grać w golfa? Zgaduję, że muszę sięy///
jakoś ich pozbyć lubs///
skrócić ... ale tak czy inaczej nie wiem jak.y///
Jest w porządku, ponieważ trzeba coś wskazujący kierunek (ale zauważ, masz do wyboru, po której stronie) Ale głównym poprawa będzie pochodzić z substytucji łączącychs/ &/&A/
is/& /A&/
razem (i obok siebie), aby zobaczyć, że nie były to wyrażenia regularne, których potrzebowałem połączyć! Wielkie dzięki! (I dzięki, że mogłem dowiedzieć się, jak grać w golfa!)JavaScript (ES6), 137
(1 bajt zapisany dzięki xEETHproductions)
Mniej golfa
Test
źródło