Wprowadzenie
Jonny chce grać w Frogger. Jednak nie jest bardzo dobry. W rzeczywistości będzie próbował ruszyć do przodu i dopiero po przesunięciu platform.
Dowiedz się, czy żaba Jonny'ego dotrze do końca ścieżki, czy też umrze na swojej drodze.
Wyzwanie
Program będzie odbierał jako dane wejściowe siatkę Frogger złożoną z 0s i 1s, w następującym formacie:
- Siatka będzie miała losową szerokość i długość oraz co najmniej 3x3
1reprezentuje platformy0reprezentuje wodęFprzedstawia pozycję początkową żaby- Każda pierwsza i ostatnia linia siatki będzie się składać tylko z
1s i nie będzie się ruszać, a żabaFzostanie losowo umieszczona w ostatniej linii - Każda warstwa pośrednia zawsze będzie się poruszać i będzie miała znak
<lub>na końcu każdej linii wskazujący, czy porusza się w lewo, czy w prawo
Zastępowanie tych symboli własnymi symbolami jest dozwolone, o ile wszystkie są odrębne, a Ty podajesz zamienniki w swojej odpowiedzi.
Dane wejściowe mogą być w dowolnym kompatybilnym formacie (ciąg znaków z podziałem wiersza, tablica ciągów, tablica znaków, ...).
Zasady Wyzwania
- W każdej turze wszystkie platformy poruszają się o jedno pole, zgodnie z kierunkiem wskazanym przez znak
<lub> - Platformy pojawiają się ponownie po drugiej stronie siatki, jeśli zostaną wypchnięte z „ekranu”
- Jeśli żaba znajduje się na ruchomej platformie, będzie się poruszać wraz z nią
- Następnie żaba przeskoczy o jeden kwadrat w kierunku górnego rzędu. Żaba będzie się poruszać co turę.
- Żaba umiera, jeśli wskoczy do wody (
0) lub dotknie boku siatki wraz z ruchomą platformą
Twój program musi wyprowadzić prawdziwą wartość, jeśli żaba przeżyje, aw przeciwnym razie wartość fałsz.
To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach. Obowiązują standardowe luki.
Przykłady
Przykład 1
Wejście
11111
00111>
00101<
1F111
Wynik
1
Wykonanie
Turn 1:
11111
10011
01010
1F111
11111
10011
0F010
11111
Turn 2:
11111
11001
F0100
11111
11111
F1001
10100
11111
Turn 3:
11111
1F100
01001
11111
1F111
11100
01001
11111
Przykład 2
Wejście
11111
00100<
00100<
1F111
Wynik
0
Wykonanie
Turn 1:
11111
01000
01000
1F111
11111
01000
0F000
11111
Turn 2:
11111
10000
F0000
11111
11111
F0000
10000
11111
Turn 3:
11111
00001
00001
11111
<lub >koniec.
0przed nią, czy będzie czekać na następny 1? Jeśli może poczekać, czy pójdzie naprzód na każdym 1, czy może będzie mądrze czekać? Tj. Z przypadkiem testowym 11111 00001< 00011< 11F11, czy będzie falsey, ponieważ wskakuje do wody ( pastebin kroków ); czy będzie falsey, ponieważ przesuwa się poza ramkę ( pastebin kroków ); czy będzie to prawdą, ponieważ elegancko czeka na drugą platformę, zanim skoczy do przodu ( pastebin kroków )?
0 .
<czy też>możemy przyjąć tablice prostokątne jako dane wejściowe? Nawiasem mówiąc, miłe wyzwanie!