Krzyżówki kodu


22

To wyzwanie dla . 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:

  1. 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.
  2. 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.
  3. 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:

  1. Złączyć nagłówek, fragment, oraz stopkę [header][snippet][footer].
  2. Uruchom to jako normalny program (niezależnie od poprzednich uruchomień) i spójrz na to, co zostało wydrukowane na standardowe wyjście.
  3. 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 .


1
Już się nudzisz z Code Tetris?
feersum

3
@feersum Nikt ich nie rozwiązuje. Mam nadzieję, że ten jest łatwiejszy dla złodziei.
Calvin's Hobbies

9
Nagłówek sha512sum <<<":, stopka: "|head -c10(w Bash).
jimmy23013,

1
@ user23013 Yikes. Myślę, że zabronię haszowania.
Calvin's Hobbies

2
@Rodolvertice Chociaż znowu można powiedzieć, że zostało natychmiast rozwiązane ... więc może masz rację. Ale zgadzam się, że jest za późno, aby to zmienić (tworzenie dobrej układanki bez ciemności nie jest trywialne).
Calvin's Hobbies

Odpowiedzi:


5

JavaScript, 0 ciemności - odporny

 __________
| 123456789A |
| B |
| C |
| D |
| E |
| F |
| G |
| H |
| I |
| J |
 ----------

Oto rozwiązanie dla was wszystkich:

 __________
| ~ 709-51 + 90 |
| -0x33-31 i 8 |
| 8–42 ^ 07 * 70 |
| 306% 4 + 0x34 |
| 0xb1204% 51 |
| -1 + 2 + x> h-- |
| „4” * 32 >> 07 |
| Math.E> 2.7 |
| 8 / 2-1-7 * 22 |
| „6” –025036 |
 ----------
Header: var h=8,x=5;console.log(

Footer: );

Wskazówki

Przez
1. -671
B. 8
C. -460
D. 54
E. 33
F. fałsz
G. 1
H. prawda
I. -151
J. -10776

Na dół
1. NaN
2. 15
3. „1131t2”
4. 64
5. -48
6. 49
7. 6
8. prawda
9. 8
A. 315

Daj mi znać, jeśli uważasz, że są jakieś wyniki, które przeliczyłem.


3
Czy jesteś pewien, że nie pomieszałeś Across and Down?
dumny haskeller,

3

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

#5###6#7__
#4_3____##
1##_#_#_#A
2____##_#_
_##_##9___
_##_#E#_#_
_#C#8_____
##_#_####_
##B_______
D__#_####_

Wskazówki

Przez

2: [[4 3]]
4: 24717
7: 32
8: E
9: "" (there is ONE trailing space after the quotes)
B: "m
D: 124

Na dół

1: [2 2 2 3]
3: 3010936384
5: 2017
6: "18"
7: ' "\"\""
8: !{}
A: -3u3
C: -1
E: Stack: ""

Powodzenia!


4
Rozwiązany. Dzięki za wyzwanie, było naprawdę fajnie! :)
Martin Ender

3

C - 26 ciemności, 5 zarezerwowanych - rozwiązanych przez feersum

   Clue #          Reserved
+----------+     +----------+
|1_2__3_#4_|     |"      #  |
|_#_##_#5_#|     | # ## #  #|
|6___7_8___|     |      8   |
|_#_#9____#|     | # #     #|
|_#AB_#C___|     | #   #    |
|D_#E_____#|     |  #      #|
|_#F#_#_#_#|     | # # # # #|
|_#GH__#I__|     | #    #   |
|_##J_#K#_#|     | ##  # # #|
|L___#M____|     |2 * # _   |
+----------+     +----------+

nagłówek

z[4]={9};main(_){_=

Stopka

;printf("%d",_);}

Wskazówki

ACROSS:
1. 48
4. -8
5. -2
6. 0
9. 73
A. 9
C. 0
D. 5
E. 0
G. -2
I. 0
J. 0
L. 18
M. 6247483

DOWN:
1. 45
2. 7680
3. 22
4. -97
5. 0
7. -1073741824
8. 8
B. 0
F. 42
H. 0
K. -2

Co to jest 5 dół?
feersum

@feersum 5 w dół to 0 (odpowiedź zredagowana)
es1024

Czy kompiluje się z gcc i działa bez argumentów?
grc

@grc tak to robi
es1024


3

MATLAB - 28 ciemności

Rozwiązane przez feersum

Tablice

  CLUE #         RESERVED
 __________      __________
|12 3 4 5  |    |    [     |
|# # # # ##|    |#s# # # ##|
|6   # #7 8|    |    # #   |
|# # # # # |    |# # # # # |
|9 A       |    |6  7  y   |
|#B  # # # |    |#   # # # |
|C         |    |        g |
|# # ### # |    |# # ### # |
|# # ##D # |    |# # ##  # |
|E         |    |d         |
 ¯¯¯¯¯¯¯¯¯¯      ¯¯¯¯¯¯¯¯¯¯

nagłówek

g=4;o=magic(3);disp(

Stopka

);

Wskazówki

Przez

  • 1 2
  • 6 -1i
  • 7 eye(3)
  • 9 0
  • b sqrt(-1)
  • do 1/25000
  • re 0
  • mi [0;0;0]

Na dół

  • 2) log(1i)
  • 3) 100
  • 4 10^16
  • 5 [2,2;2,2]
  • 8 512
  • ZA inv(1i)
  • re 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 1iprzekracza 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 ), gdzie CLUEjest 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

    KEY
 __________
|max([1 2])|
|#s#1#0#*##|
|1i^3#*#o\o|
|#n#+#1#n#(|
|6 -7+eye&1|
|#(i)#1#s# |
|.1 ^ 5*(g)|
|#)#2### #^|
|#*#/##~2# |
|diag(-o)>3|
 ¯¯¯¯¯¯¯¯¯¯ 


3

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:

1_234##5##         * . ## ##
_#6_______         #  e /   
_#7__##_##         # * ##6##
8________#        3   %    #
##_#_##_##        ##5# ## ##
#9________        #a   *   b
##_#_##_##        ## # ## ##
A________#        b   7  1 #
##_####_##        ## #### ##
#hash('9')        #hash('9')

Wskazówki:

ACROSS
1: 440380.9
6: 12328.7671
7: 72
8: 4519217.0
9: 79920L
A: 1.55826556
B: 7296021944

DOWN
1: 1211477643
2: 17353.0
3: 5.4
4: 1719.0
5: 7514613.78

Nagłówek:

a=49481
b=97381
x=

Stopka:

print`x`[:10]

Aby wyjaśnić, czy stopka znajduje się we własnej linii, czy jest ptuż po każdym fragmencie?
Calvin's Hobbies

@ Calvin'sHobbies Stopka zaczyna się od nowej linii.
grc

Czy A-cokolwiek jest szczególnie diaboliczne? Mam siatkę, która działa na wszystko oprócz tego.
feersum

@feersum Jest to wyrażenie matematyczne, podobnie jak inne, ale może być dość trudne. Pamiętaj, że dane wyjściowe zostają obcięte do 10 znaków.
grc


3

JavaScript ES4 - 37 Darks, 10 Zarezerwowany

Rozwiązany przez bazzarg

Tablice

   CLUE #         RESERVED
 __________      __________
|1  2 ###3#|    |     ### #|
| ## #45   |    | ## #I   4|
| ## ## # #|    |:##-## # #|
|6        #|    |         #|
| ## ## # #|    | ## ##.# #|
|7         |    |         ]|
| ## ## ###|    | ## ## ###|
|8   #9    |    | +  #   - |
| ## ## ###|    |'## ## ###|
| ##A      |    | ##   4   |
 ¯¯¯¯¯¯¯¯¯¯      ¯¯¯¯¯¯¯¯¯¯

nagłówek

a=3;I=9;t=

Stopka

;console.log(t);

Wskazówki

Przez

  • 1 51
  • 4 true
  • 6 8.14159265...
  • 7 "90"
  • 8 0
  • 9 -10
  • ZA "HI"

Na dół

  • 1 5
  • 2) "2pac"
  • 3) 3072
  • 5 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

__________ |{},51###6#| |a##+#I/a<4| |:##-##[#<#| |5+Math.PI#| |}##+##.#+#| |[I+"0"][0]| |'##p##/###| |a+-a#a=~-I| |'##c##=###| |]##"\x48I"| ¯¯¯¯¯¯¯¯¯¯

Jak się okazuje, rozwiązanie bazzarg dla 9 w poprzek ma -niewłaściwe miejsce, ale wskazówka miała być 10zamiast -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ę. ;)


1
Ciekawy pomysł na temat zarezerwowanych postaci. Nie sprawię, że będą się liczyć jako ciemności, ponieważ wtedy ludzie mieliby jeszcze większą motywację, aby ich nie używać.
Calvin's Hobbies

1
Podczas tworzenia krzyżówki napotkałem ten sam problem, ale nie jest to poprawne. Clues must contain at least 1 and no more than 10 characters.
jimmy23013,

Nie znam JavaScriptu, ale coś podobnego [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ć?
feersum

Użytkownik 23013 ma rację. 8.141592653589793i [object Window]są za długie.
Calvin's Hobbies

Mogę obciąć wyrażenie dla 6-w poprzek. Powinno być oczywiste, jaka jest liczba (i jak ją wygenerować) niezależnie od liczby miejsc dziesiętnych. Jeśli chodzi o 9 -ross, wyjście jest rzeczywiście specyficzne dla przeglądarki (chociaż uważam, że format, którego użyłem, jest wspólny dla wszystkich pięciu głównych przeglądarek). W tym przypadku zmienię rzeczywistą odpowiedź.
COTO,

1

Python 2, 0 ciemności - Odporność

Python 2 jest tylko z powodu printstopki. 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”.

 __________
|123456789A|
|B         |
|C         |
|D         |
|E         |
|F         |
|G         |
|H         |
|I         |
|J         |
 ----------

Nagłówek:

b=7;r=3;e=6;a=.1;d=

Stopka:

;print 2*str(d)[::3]

Wskazówki:

Przez

1. 74
B. 282.e2
C. 77
D. 8
E. 94
F. 247351.862e1
G. 99
H. -5312-5312
I. -32
J. 300000

Na dół

1. 61000
2. 251
3. 09333.8333
4. 7878
5. -70
6. -0045.164
7. 88
8. 61225
9. -350
A. 69971

Rozwiązanie

__________ |r+111-37-r| |'2.48e+22'| |6+765-0*56| |30/7%140*2| |0xe6b/0x27| |18**+9.1-9| |047--01551| |04/-7.0131| |0-1512%989| |'30000700'| ----------

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.