W kilku brytyjskich gazetach jest gra znana jako Hidato . Jest nieco podobny do Sudoku , chociaż zamiast mieć 1-9 w linii i bloku, chodzi o umieszczanie liczb w taki sposób, aby łączyły się w kolejności od 01
najwyższej do najwyższej, aby wszystkie dotykały poziomo, ukośnie lub pionowo .
Wejścia będą zawierać wiele wierszy oddzielonych \n
, zawierających bloki oddzielone spacją, którą można założyć o szerokości dwóch znaków. Każdy blok będzie liczbą, pustym miejscem do wypełnienia (oznaczonym przez --
) lub ścianą, która nie może mieć cyfr w ( XX
).
Twój wynik powinien być zgodny z podanym, aczkolwiek z pustymi blokami opatrzonymi liczbami. Pamiętaj, że może nie istnieć unikalne, a nawet istnienie rozwiązania - niektóre mogą dawać wielokrotność ze względu na ich dwuznaczność, podobnie jak Sudoku, a niektóre mogą być dosłownie nierozwiązywalne, w takim przypadku powinieneś dać falsey wynik , ale ty można założyć, że dane wejściowe są sformatowane jak poniżej.
Użyj standardowego nagłówka Language: XX bytes
. Miłej gry w golfa!
Przykłady
Wejścia 01 XX 03
, 01 -- 04
, 01 --
itp powinien wszystko coś powrót falsey .
Wejście:
01 -- --
-- XX 05
Wynik:
01 03 04
02 XX 05
Wejście:
-- 33 35 -- -- XX XX XX
-- -- 24 22 -- XX XX XX
-- -- -- 21 -- -- XX XX
-- 26 -- 13 40 11 XX XX
27 -- -- -- 09 -- 01 XX
XX XX -- -- 18 -- -- XX
XX XX XX XX -- 07 -- --
XX XX XX XX XX XX 05 --
Wynik:
32 33 35 36 37 XX XX XX
31 34 24 22 38 XX XX XX
30 25 23 21 12 39 XX XX
29 26 20 13 40 11 XX XX
27 28 14 19 09 10 01 XX
XX XX 15 16 18 08 02 XX
XX XX XX XX 17 07 06 03
XX XX XX XX XX XX 05 04
Wejście:
XX XX XX XX -- 53 XX XX XX XX
XX XX XX XX -- -- XX XX XX XX
XX XX 56 -- -- -- 30 -- XX XX
XX XX -- -- -- -- -- -- XX XX
XX -- -- 20 22 -- -- -- -- XX
XX 13 -- 23 47 -- 41 -- 34 XX
-- -- 11 18 -- -- -- 42 35 37
-- -- -- -- 05 03 01 -- -- --
XX XX XX XX -- -- XX XX XX XX
XX XX XX XX 07 -- XX XX XX XX
Wynik:
XX XX XX XX 52 53 XX XX XX XX
XX XX XX XX 54 51 XX XX XX XX
XX XX 56 55 28 50 30 31 XX XX
XX XX 26 27 21 29 49 32 XX XX
XX 25 24 20 22 48 45 44 33 XX
XX 13 19 23 47 46 41 43 34 XX
14 12 11 18 04 02 40 42 35 37
15 16 17 10 05 03 01 39 38 36
XX XX XX XX 09 06 XX XX XX XX
XX XX XX XX 07 08 XX XX XX XX
źródło
-1
ścianę i0
być pustym? Ułatwi to skupienie się na prawdziwym wyzwaniu układanki, a wtedy nie będzie złożoności wypełniania liczb zerami lub ciągami parsowania.Odpowiedzi:
JavaScript (Node.js) , 482 bajtów
Jest to rozwiązanie brutalnej siły, zaczyna się od
01
i sprawdza każdą sąsiednią komórkę, sprawdzając puste komórki (--
) lub żądaną liczbę i podążając ścieżką do ukończenia lub niemożliwości. Jeśli żądany numer istnieje i nie jest sąsiadem, to skraca to rozwiązanie. Największe pole zajmuje kilka sekund.Prawdopodobnie nie jest to szczególnie interesujące, ale pomyślałem, że spróbuję swoich sił, by znaleźć rozwiązanie, zanim przejrzę odpowiedzi na temat kodu Rosetta i podobało mi się zmierzenie się z nieco trudniejszym wyzwaniem!
Znajduje wszystkie rozwiązania, gdy istnieje wiele . Treść jest funkcją, która akceptuje tablicę dwuwymiarową, a stopka przetwarza dane wejściowe do żądanego formatu i zwraca wynik również do żądanego formatu. Chętnie udzielę więcej informacji (i mniej golfa implementacji, jeśli jest zainteresowanie).
Wypróbuj online!
źródło