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 .
źródło
sha512sum <<<"
:, stopka:"|head -c10
(w Bash).Odpowiedzi:
JavaScript, 0 ciemności - odporny
Oto rozwiązanie dla was wszystkich:
Wskazówki
Daj mi znać, jeśli uważasz, że są jakieś wyniki, które przeliczyłem.
źródło
CJam, 41 ciemności - rozwiązany przez Martina Büttnera
Brak nagłówka, stopki lub zarezerwowanych kwadratów. Daj mi znać o wszelkich potencjalnych błędach.
Rozwiązanie, które pierwotnie miałem na myśli, nie zawierało białych znaków - nie jest to rozwiązanie, które Martin Büttner znalazł.
Deska
Wskazówki
Przez
Na dół
Powodzenia!
źródło
C - 26 ciemności, 5 zarezerwowanych - rozwiązanych przez feersum
nagłówek
Stopka
Wskazówki
źródło
MATLAB - 28 ciemności
Rozwiązane przez feersum
Tablice
nagłówek
Stopka
Wskazówki
Przez
2
-1i
eye(3)
0
sqrt(-1)
1/25000
0
[0;0;0]
Na dół
log(1i)
100
10^16
[2,2;2,2]
512
inv(1i)
zeros(3)
Zauważ, że nieco zmieniłem nieco wskazówki dotyczące tej układanki. Ponieważ wyjścia MATLAB są niezmiennie pełne (na przykład nawet wydrukowanie wyimaginowanej jednostki
1i
przekracza 10 znaków [0 + 1.0000i
]) i zmieniają się w zależności od domyślnego formatu wyjściowego, wszystkie wskazówki są prostymi wyrażeniami, których wyświetlane wyniki są równoważne z odpowiednimi rozwiązaniami .Innymi słowy, możesz wziąć pod uwagę rzeczywistą wskazówkę
disp( CLUE )
, gdzieCLUE
jest wskazówka zawierająca 10 znaków lub mniej na powyższych listach.Mam nadzieję, że Calvin nie ma nic przeciwko. Nie wierzę, że narusza to zasadę długości wskazówek, która może uniemożliwić twórcom krzyżówek wstawianie bardzo trudnych do wygenerowania rozwiązań (np. Słów).
Klawisz
źródło
Pyton
Rozwiązane przez feersum
Oto jeden na początek. Użyłem Python 2.7.8, aby uzyskać wskazówki. Powodzenia :)
Ujawniłem ostatni fragment kodu, ponieważ mieszanie jest teraz niedozwolone. Poza tym na siatce jest 36 ciemności (brakowało mi punktu punktowego, kiedy to zrobiłem).
Ujawniłem jeszcze kilka postaci, aby było łatwiej, ale różne rozwiązania też są w porządku.
Siatka krzyżówek:
Wskazówki:
Nagłówek:
Stopka:
źródło
p
tuż po każdym fragmencie?JavaScript ES4 - 37 Darks, 10 Zarezerwowany
Rozwiązany przez bazzarg
Tablice
nagłówek
Stopka
Wskazówki
Przez
51
true
8.14159265
..."90"
0
-10
"HI"
Na dół
5
"2pac"
3072
false
Zauważ, że dołączyłem drugą reprezentację planszy oznaczoną jako „zarezerwowana”, aby wskazać dziesięć świateł z już wypełnionymi postaciami. Pomagają one solverowi i ograniczają / ujednoznaczniają możliwe rozwiązania. Nie jestem pewien, czy Calvin chce je uznać za ciemności czy światła.
Użyłem dwóch oddzielnych reprezentacji, ponieważ niektóre z wprowadzonych znaków są liczbami i mogą być mylone z liczbami wskazówek i ogólnie w celu odtajnienia tablicy.
W żadnym z rozwiązań nie ma znaków białych znaków, chociaż można wypełnić światło białymi znakami, jeśli działają.
Oryginalne rozwiązanie
Jak się okazuje, rozwiązanie bazzarg dla 9 w poprzek ma
-
niewłaściwe miejsce, ale wskazówka miała być10
zamiast-10
(wskazówka i odpowiedź były pierwotnie różne i szybko zmieniłem). Dlatego powiemy tylko, że w tym przypadku dwa zła mają rację. ;)źródło
Clues must contain at least 1 and no more than 10 characters.
[object Window]
(co zresztą jest niepoprawne, jak zauważył użytkownik N), brzmi jak zależy od uruchomienia w określonym środowisku. Jeśli to prawda, czy nie należy tego określać?8.141592653589793
i[object Window]
są za długie.Python 2, 0 ciemności - Odporność
Python 2 jest tylko z powodu
print
stopki. Powinno działać tak samo w Pythonie 3, jeśli zmieniszprint
instrukcję.Bawiłem się, robiąc to i ogólnie jestem zadowolony i trochę podekscytowany końcowym rezultatem.
Daj mi znać, jeśli uważasz, że moja stopka jest zbyt okrutna (gdybym wiedział, że możesz powstrzymać się od używania programu do brutalnego użycia siły, usunę to okrucieństwo). Ciekawostka: zmienne w nagłówku zaklęcia „chleb”.
Nagłówek:
Stopka:
Wskazówki:
Przez
Na dół
Rozwiązanie
źródło