Labirynt zjazdowy jest podawany jako seria rzędów cyfr oddzielonych spacją od 0 do 9 włącznie, plus jeden „S” i jeden „X”, gdzie S oznacza początek, a X oznacza koniec. W labiryncie zjazdowym możesz udać się tylko na pole sąsiadujące z tobą na północ, południe, wschód lub zachód (bez przekątnych) i możesz iść tylko na pola o wartości mniejszej lub równej wartości są obecnie włączone.
Program powinien wypisać ścieżkę do poruszania się po labiryncie w tym samym formacie co dane wejściowe, tylko wszystkie spacje powinny mieć znak „.” w nich, a wszystkie niezwiedzone miejsca powinny mieć znak „#”. Komórki początkowe i końcowe powinny również zachować odpowiednio swoje „S” i „X”. Możesz założyć, że labirynt zawsze jest rozwiązaniem.
Przykładowe dane wejściowe:
3 3 3 3 2 1 S 8 9
3 1 1 3 3 0 6 8 7
1 2 2 4 3 2 5 9 7
1 2 1 5 4 3 4 4 6
1 1 X 6 4 4 5 5 5
Przykładowe dane wyjściowe:
. . . . # # S . #
. # # . . # # . .
. # # # . # # # .
. # # # . # # # .
. . X # . . . . .
źródło
S
orazX
w dowolnym kierunku? Czy labirynt jest zawsze do rozwiązania?0
do9
włącznie, prawda?Odpowiedzi:
JavaScript (ES6) 219
Funkcja zwracająca wartość prawda lub fałsz. Rozwiązanie (jeśli znaleziono) jest wyprowadzane na konsolę. Nie próbuje znaleźć optymalnego rozwiązania.
Nieśmiertelny i wyjaśnił więcej niż to konieczne
Test w konsoli Firefox / FireBug
Wynik
źródło
C # - 463
Akceptuje dane wejściowe za pośrednictwem STDIN i powinien wygenerować optymalną ścieżkę, przetestowaną dla danego przypadku testowego, ale nie inaczej. Zakłada, że zawsze istnieje rozwiązanie.
Trochę mi się spieszy, mam termin w ciągu 7 godzin, ale wyglądało to na zbyt zabawne, aby przegapić. Jestem również poza praktyką. To może być bardzo krępujące, jeśli pójdzie to źle, ale jest rozsądnie grał w golfa.
Kod z komentarzami:
źródło