Jest to dodatkowe wyzwanie dla wyzwania generowania łamigłówek Loopy . Możesz spróbować rozwiązać to wyzwanie, zanim spróbujesz trudniejszego wyzwania w poprzednim łączu.
Celem tego wyzwania jest sprawdzenie rozwiązania łamigłówki. Proszę wziąć całą dokumentację dotyczącą tego, czym jest zwariowana łamigłówka z poprzedniego linku. Rozwiązana łamigłówka jest sformatowana w bardzo podobny sposób, jak wynik prawidłowego poddania się wyzwaniu „generuj łamigłówki” i może wyglądać następująco:
+-+-+ +-+ +-+ +
| | | |2|3|
+-+ + + + + +-+
2| | | |2| 3|
+ + +-+ + + +-+
2| 2 1|3| |
+-+ +-+ +-+ +-+
|2 | | 1 2|
+ +-+ +-+ +-+ +
| |2 1 2|3|3| |
+ + +-+ +-+ +-+
| | |3|2 1
+ +-+ +-+-+-+-+
| 2 2 |
+-+-+-+-+-+-+-+
Ścieżka tworząca rozwiązanie jest oznaczona znakami |
i -
pomiędzy +
znakami.
Specyfikacja wejściowa
Twój program otrzyma pętlową łamigłówkę z rozwiązaniem sformatowanym jak na powyższym przykładzie jako dane wejściowe. Twój program wyliczy rozmiar układanki na podstawie danych wejściowych. Możesz przyjąć następujące założenia dotyczące danych wejściowych:
- Układanka ma nie mniej niż 2 i nie więcej niż 99 komórek w obu kierunkach
- Tak więc, każda linia ma maksymalną długość 199 znaków bez uwzględnienia znaku (ów) nowej linii
- Tak więc wejście zawiera maksymalnie 99 wierszy
- każda linia może kończyć się po ostatnim znaku do wydrukowania lub może być wypełniona białymi znakami, więc ma długość do 2 · y + 1 znaków, gdzie y jest liczbą komórek w kierunku poziomym
- każda pozycja z obu x i y współrzędnych nawet zawiera
+
znak - pozycje w poziomie lub w pionie przylegające do pozycji zawierających
+
znaki zawierają znak spacji, znajdują się za końcem linii lub zawierają-
znak, jeśli sąsiadują poziomo lub|
znak, jeśli sąsiadują pionowo - wszystkie pozostałe pozycje są albo za koniec linii lub zawierają jeden z bohaterów
,
0
,1
,2
, lub3
- wszystkie linie są zakończone domyślnymi znakami nowej linii na platformie
- jest dokładnie jedna nowa linia
Dane wejściowe należy odbierać w jeden z następujących sposobów:
- Ze standardowego wejścia
- Jako wartość parametru nazwanego
p
w żądaniu POST HTTP - Jako treść formularza HTML
- Jako zawartość pliku o nazwie
p
w katalogu zdefiniowanym w implementacji - W implementacji zdefiniowany sposób w czasie wykonywania, jeśli poprzednie cztery nie są dostępne
- Zakodowane na stałe, jeśli twój język nie zapewnia możliwości otrzymywania danych wejściowych
Specyfikacja wyjściowa
Twój program zostanie zakończony dla wszystkich danych wejściowych zgodnych ze specyfikacją danych wejściowych i obliczy, czy rozwiązanie układanki jest prawidłowe. Twój program wyświetli wynik obliczeń jako wartość logiczną na jeden z następujących sposobów:
- Jako status wyjścia zero (rozwiązanie jest prawidłowe) lub niezerowe (rozwiązanie jest nieprawidłowe)
- Ponieważ znak
y
(rozwiązanie jest prawidłowe) lubn
(rozwiązanie jest nieprawidłowe), po którym następuje zero lub więcej dowolnych znaków wyprowadzanych w sposób zdefiniowany w implementacji
Zachowanie Twojego programu jest nieokreślone, gdy napotkasz dane wejściowe niesformatowane zgodnie ze specyfikacją danych wejściowych.
Punktacja
Wynik twojego programu to liczba znaków w jego źródle, z wyjątkiem możliwych do pominięcia białych znaków i możliwych do pominięcia komentarzy. Zachęcamy do wcięcia swojego zgłoszenia, aby ułatwić innym czytanie i komentowanie rozwiązania, aby było łatwiejsze do naśladowania.
Zgłoszenia niezgodne ze specyfikacją wejściową lub wyjściową lub generujące nieprawidłowe wyniki są nieprawidłowe.
0
jest także poprawny numer komórki.Odpowiedzi:
GolfScript, 133 znaki
Oczekuje danych wejściowych od STDIN i drukuje
y
dla prawidłowego in
nieprawidłowego rozwiązania. Wykonuje zadanie, używając głównie zamiany łańcucha na siatce lub z obróconymi wersjami siatki.Kod z adnotacjami:
źródło
C #
803579 bajtówKompletny program, odczytywany ze STDIN, powinien poradzić sobie z każdym popularnym schematem nowej linii, o ile ma on linie. Dzięki HackerCow za zwrócenie uwagi, że nie muszę dodawać nowego wiersza w innym pytaniu, prosząc mnie o usunięcie go tutaj i zapisanie 4 bajtów
Kod do gry w golfa:
Kod wykonuje 3 kontrole, najpierw sprawdzając liczbę linii wokół każdej liczby i czy każde skrzyżowanie ma 0 lub 2 linie prowadzące od niego, a następnie czy wszystkie linie są ze sobą połączone.
Sformatowany kod:
źródło
Kobra - 514
Sprawdza, czy obok każdej liczby znajduje się odpowiednia liczba wierszy, a następnie przechodzi ścieżkę wokół linii i sprawdza, czy nie została pominięta.
źródło