Wprowadzenie
„Yarr! Mieliśmy chłopca, który nazywał siebie„ programistą ”, który tworzy mapę naszego ukrytego skarbu! Ale to napisane z dziwnymi liczbami i literami!„ E5, N2, E3 ”… co to w ogóle robi znaczy? Szaleństwo! Nie mogę nawet napisać właściwej mapy skarbów, bezużytecznego kretyna. Napraw to dla nas! Podarujemy ci skarb!
Opis wyzwania
Grupa piratów ma problem z odczytaniem mapy skarbów. Czy potrafisz napisać program, który przekształci go w bardziej ... piracką formę?
Jako dane wejściowe otrzymasz oryginalną mapę skarbów. Jest to lista ciągów oddzielonych przecinkami, każdy ciąg składający się z części literowej (która mówi piratom, w którym kierunku powinni iść) oraz części liczbowej (która informuje piratów, ile kroków należy wykonać w tym kierunku). Na przykład następująca mapa skarbów:
E2,N4,E5,S2,W1,S3
oznaczałoby: „idź dwa kroki na wschód, idź cztery kroki na północ, idź pięć kroków na wschód, idź dwa kroki na południe, idź krok na zachód, a następnie trzy kroki na południe”.
Jako wyjście, będziesz wyjście mapę w formie graficznej, za pomocą znaków >, ^, v, i <jako wskaźniki. Oto wynik dla powyższego wejścia:
>>>>>v
^ v
^ v<
^ v
>>^ X
Zauważ, że zamiast tego ostatni krok na południu zastąpiliśmy X. Dzieje się tak, ponieważ ostatnim krokiem jest miejsce, w którym znajduje się skarb, i jak wszyscy wiemy, piraci muszą mieć X na swoich mapach skarbów, w przeciwnym razie nie będą umieli go czytać.
Nawiasem mówiąc, mapa nigdy się nie przekroczy, więc nie musisz się martwić o nakładanie się. Ponadto możesz mieć końcowy nowy wiersz na końcu danych wyjściowych.
Przykładowe wejścia i wyjścia
S5,W2
v
v
v
v
v
X<
N1,E1,S1,E1,N1,E1,S2
>v>v
^>^X
N1
X
N6,E6,S6,W5,N5,E4,S4,W3,N3,E2,S2,W1,N2
>>>>>>v
^>>>>vv
^^>>vvv
^^^Xvvv
^^^^<vv
^^^<<<v
^^<<<<<
E21,S2
>>>>>>>>>>>>>>>>>>>>>v
X
N12,E11,S12,W2,N4
>>>>>>>>>>>v
^ v
^ v
^ v
^ v
^ v
^ v
^ v
^ v
^ X v
^ ^ v
^ ^ v
^ ^<<
Xpowinien on oznaczyć krok po ostatnim ruchu, tak jak wszystkie inne ruchy są liczone. Wyobraź sobie, że ostatnim krokiem jest N3: idziesz trzy kroki na północ i kopiesz, ale tu nic nie ma, zamiast tego musiałeś przejść 2 kroki. Nie mam nic przeciwko, jeśli zachowasz istniejącą regułę, ponieważ dodaje ona małą narożną skrzynkę do obsługi. Ale pamiętaj, co się stało z tym chłopcem.