To wyzwanie dla gliniarzy i rabusiów . Odpowiedz tutaj, jeśli jesteś gliną (twórca krzyżówki), odpowiedz na pytanie towarzyszące, jeśli jesteś złodziejem (solver). Możesz przyjąć obie role.
Gliny (puzzle)
Twoim zadaniem jest napisanie krzyżówki 10 × 10, w której zamiast słów lub fraz fragmenty kodu stanowią rozwiązanie podpowiedzi. Każda wskazówka będzie niepustą sekwencją znaków, tak że uruchomienie fragmentu kodu, do którego się odnosi, wypisze sekwencję na standardowe wyjście.
Twój post musi zawierać trzy rzeczy:
- Twoja pusta siatka krzyżówki 10 × 10, używana
#
do ciemności (separatory wskazówek) i_
do świateł (komórki do wypełnienia).- Każda pozioma lub pionowa sekwencja 2 lub więcej świateł (ograniczona ciemnością lub krawędzią siatki) jest wpisem, dla którego musisz napisać wskazówkę. Dla wygody należy je ponumerować w zwykły sposób (od lewej do prawej, od góry do dołu), zastępując
_
na początku każdego wpisu unikalnym identyfikatorem znaku (np. 1, 2, ..., A, B , ...). - Twoja siatka może mieć dowolną liczbę ciemności.
- Twoja siatka może zawierać dowolną liczbę wskazówek.
- Pozycje poziome są zawsze odczytywane od lewej do prawej, a wpisy pionowe od góry do dołu.
- Każda pozioma lub pionowa sekwencja 2 lub więcej świateł (ograniczona ciemnością lub krawędzią siatki) jest wpisem, dla którego musisz napisać wskazówkę. Dla wygody należy je ponumerować w zwykły sposób (od lewej do prawej, od góry do dołu), zastępując
- Lista wskazówek, która zawiera każdy wpis w krzyżówce, w dół i w poprzek.
- Wskazówki muszą zawierać co najmniej 1 i nie więcej niż 10 znaków.
- Jeśli wskazówki zawierają spacje, upewnij się, że są one oczywiste podczas formatowania postu.
- Fragmenty kodu nagłówka i stopki , każde 20 znaków lub mniej.
- Są one uruchamiane odpowiednio przed fragmentem rozwiązania i po nim, i mogą pomóc w zmianie nazwy długich wbudowanych elementów itp.
Procedura sprawdzania, czy wskazówka jest zgodna z odpowiadającym jej fragmentem kodu:
- Złączyć nagłówek, fragment, oraz stopkę
[header][snippet][footer]
. - Uruchom to jako normalny program (niezależnie od poprzednich uruchomień) i spójrz na to, co zostało wydrukowane na standardowe wyjście.
- Jeśli odpowiada to wskazówce, fragment kodu jest prawidłowym rozwiązaniem.
Dla uproszczenia możesz używać tylko ASCII do wydruku (kody szesnastkowe od 20 do 7E). Sam nagłówek i stopka mogą także zawierać tabulatory i znaki nowej linii.
Dodatkowe uwagi
- W przypadku dowolnego fragmentu kodu uruchomienie
[header][snippet][footer]
nie powinno zająć więcej niż minutę na przyzwoitym nowoczesnym komputerze . - Musisz określić język programowania (i wersję).
- Nie możesz używać żadnych popularnych algorytmów mieszających.
- Nie możesz używać bibliotek zewnętrznych.
- Wszystko w twoim kodzie musi być deterministyczne, niezmienne czasowo i nie wymaga połączenia sieciowego.
#
i_
mogą występować we fragmentach (lub w dowolnym innym miejscu).- Możesz ujawnić niektóre postacie z krzyżówki, tak jak zrobiła to COTO . Nadal liczą się jako światła. Rabusie nie są zobowiązani do korzystania z nich, są to tylko miłe wskazówki.
Przykład
Prosty przykład z użyciem Pythona 3. Nagłówek: p=print;t=5;
. Bez stopki.
Nierozwiązana siatka:
##########
1___2___##
_###_#####
_###_#####
_###_#####
####_#####
####_#####
###3______
####_#####
####_#####
Wskazówki:
ACROSS
1: 8
3: A!
DOWN
1: 7
2: 10
Prawidłowe rozwiązanie:
##########
print(8)##
(###+#####
7###=#####
)###5#####
####;#####
####p#####
###p('A!')
####t#####
####)#####
Rabusie (solwery)
Twoim zadaniem jest rozwiązanie krzyżówek opublikowanych przez gliniarzy. Musisz użyć dokładnie tego samego języka programowania, w którym podano krzyżówkę, ale w przeciwnym razie każde rozwiązanie, które pasuje do wszystkich wskazówek, jest poprawne.
Nie możesz rozwiązać własnych krzyżówek i możesz spróbować odpowiedzieć na każde z krzyżówek tylko raz.
Pamiętaj, aby opublikować swoje rozwiązania w pytaniu towarzyszącym .
Punktacja
Jeśli krzyżówka zostanie rozwiązana w ciągu 72 godzin, nie będzie już działać. Gdy krzyżówka trwa nierozwiązana przez 72 godziny, uznaje się ją za odporną, a twórca może opublikować rozwiązanie (edytując swój wpis i oznaczając go jako odporny).
Zwycięski policjant to użytkownik, który przesłał immunologiczną krzyżówkę z najmniejszą liczbą ciemności ( #
). W przypadku remisu wygrywa zgłoszenie o najwyższym głosowaniu. Rozwiązanie musi zostać opublikowane, aby odpowiedź została zaakceptowana.
Zwycięski złodziej to użytkownik, który rozwiązuje najwięcej krzyżówek. Remis to suma głosów w głosowaniu w pytaniu towarzysza .
sha512sum <<<"
:, stopka: "|head -c10
(w Bash).