Кодовые кроссворды

22

Это задача . Ответьте здесь, если вы полицейский (создатель кроссвордов), ответьте на сопутствующий вопрос, если вы разбойник (решатель кроссвордов). Вы можете взять на себя обе роли.

Менты (Пазлы)

Ваша задача - написать кроссворд 10 × 10, где вместо слов или фраз фрагменты кода являются решениями для разгадки. Каждая подсказка будет непустой последовательностью символов, так что при запуске фрагмента кода, на который она ссылается, эта последовательность будет выведена в стандартный вывод.

Ваш пост должен включать три вещи:

  1. Ваша пустая кроссвордная сетка 10 × 10, используемая #для темных (разделители подсказок) и _для источников света (ячейки, которые необходимо заполнить).
    • Каждая горизонтальная или вертикальная последовательность из 2 или более источников света (ограниченных темными точками или краем сетки) является записью, для которой вы должны написать подсказку. Для удобства их следует нумеровать обычным способом (слева направо, сверху вниз), заменяя _в начале каждой записи уникальным символьным идентификатором (например, 1, 2, ..., A, B). , ...).
    • Ваша сетка может иметь любое количество темных.
    • Ваша сетка может иметь любое количество подсказок.
    • Горизонтальные записи всегда читаются слева направо, а вертикальные сверху вниз.
  2. Список подсказок, который содержит каждую запись в вашем кроссворде, вниз и поперек.
    • Подсказки должны содержать не менее 1 и не более 10 символов.
    • Если ваши подсказки содержат пробелы, убедитесь, что они очевидны при форматировании вашего сообщения.
  3. Заголовок и сноска фрагменты кода, каждый из 20 символов или менее.
    • Они выполняются соответственно до и после фрагмента решения и могут помочь в переименовании длинных встроенных модулей и тому подобного.

Процедура обеспечения соответствия подсказки соответствующему фрагменту кода:

  1. Объединить заголовок, фрагмент кода, и нижний колонтитул [header][snippet][footer].
  2. Запустите это как обычную программу (независимо от прошлых запусков) и посмотрите, что было напечатано на стандартный вывод.
  3. Если это соответствует подсказке, фрагмент является правильным решением.

Для простоты вы можете использовать для печати только ASCII (шестнадцатеричные коды от 20 до 7E). Только верхний и нижний колонтитулы могут также содержать вкладки и переводы строк.

Дополнительные замечания

  • Для любого фрагмента бег [header][snippet][footer]не должен занимать больше минуты на приличном современном компьютере .
  • Вы должны указать свой язык программирования (и версию).
  • Вы не можете использовать какие-либо распространенные алгоритмы хеширования.
  • Вы не можете использовать внешние библиотеки.
  • Все в вашем коде должно быть детерминированным, не зависящим от времени и не требовать подключения к сети.
  • #и _может встречаться во фрагментах (или где-либо еще).
  • Вы можете раскрыть некоторые символы в кроссворде, как это сделал COTO . Они по-прежнему считаются огнями. Грабители не обязаны использовать их, они просто хорошие подсказки.

пример

Простой пример использования Python 3. Заголовок: p=print;t=5;. Нет нижнего колонтитула.

Неразрешенная сетка:

##########
1___2___##
_###_#####
_###_#####
_###_#####
####_#####
####_#####
###3______
####_#####
####_#####

Ключи:

ACROSS
1: 8
3: A!
DOWN
1: 7
2: 10

Действительное решение:

##########
print(8)##
(###+#####
7###=#####
)###5#####
####;#####
####p#####
###p('A!')
####t#####
####)#####

Грабители (Солверы)

Ваша задача - разгадать кроссворды, опубликованные полицейскими. Вы должны использовать тот же язык программирования, на котором указан кроссворд, но в противном случае любое решение, которое соответствует всем подсказкам, является действительным.

Вы не можете решить свои собственные кроссворды, и вы можете попытаться ответить на каждый из других кроссвордов только один раз.

Не забудьте опубликовать свои решения в сопутствующем вопросе .

счет

Если кроссворд разгадан в течение 72 часов, он больше не работает. После того, как кроссворд не будет разрешен в течение 72 часов, он считается неуязвимым, и создатель может опубликовать решение (отредактировав свое сообщение и пометив его как неуязвимое).

Победивший полицейский - это пользователь, который отправил иммунный кроссворд с наименьшим количеством черт ( #). В случае ничьей побеждает наибольшее количество голосов. Решение должно быть размещено для ответа, который будет принят.

Победивший грабитель - это пользователь, который разгадывает большинство кроссвордов. Тай-брейк - это их сумма положительных голосов в сопутствующем вопросе .

Кальвин Хобби
источник
1
Тебе уже надоел Код Тетрис?
feersum
3
@feersum Никто не решает их. Я надеюсь, что это легче для грабителей.
Увлечения Кэлвина
9
Заголовок: sha512sum <<<", сноска: "|head -c10(в Bash).
jimmy23013
1
@ user23013 Yikes. Я думаю, что я буду запрещать хеширование.
Увлечения Кэлвина
2
@Rodolvertice Хотя, опять же, можно сказать, что он, как говорят, был мгновенно решен ... так что, возможно, вы правы. Но я согласен с тем, что уже слишком поздно это менять (создание хорошей головоломки без темных не совсем тривиально).
Увлечения Келвина

Ответы:

5

JavaScript, 0 темных - невосприимчивый

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

Вот решение для всех вас:

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

Footer: );

Улики

через
1. -671
Б. 8
C. -460
D. 54
Е. 33
Ф. ложь
Г. 1
H. правда
I. -151
J. -10776

вниз
1. NaN
2. 15
3. "1131t2"
4. 64
5. -48
6. 49
7. 6
8. верно
9. 8
А. 315

Дайте мне знать, если вы считаете, что есть какие-то результаты, которые я просчитал.

NinjaBearMonkey
источник
3
Вы уверены, что не перепутали Across и Down?
гордый haskeller
3

CJam, 41 день - решено Мартином Бюттнером

Нет верхнего, нижнего колонтитула или зарезервированных квадратов. Дайте мне знать о любых потенциальных ошибках.

У решения, которое я изначально имел в виду, не было пробелов - это не то, что нашел Мартин Бюттнер.

доска

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

Улики

через

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

вниз

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

Удачи!

Сообщество
источник
4
Решаемые. Спасибо за вызов, это было действительно весело! :)
Мартин Эндер
3

C - 26 темных, 5 зарезервированных - решено 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 * # _   |
+----------+     +----------+

заголовок

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

нижний колонтитул

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

Улики

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
es1024
источник
Что такое 5 вниз?
feersum
@feersum 5 вниз равен 0 (ответ отредактирован)
es1024
Он компилируется с gcc и запускается без аргументов?
grc
@ grc да, это так
es1024
3

MATLAB - 28 Darks

Решено feersum

Доски

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

заголовок

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

нижний колонтитул

);

Улики

через

  • 1 2
  • 6 -1i
  • 7 eye(3)
  • 9 0
  • В sqrt(-1)
  • С 1/25000
  • D 0
  • Е [0;0;0]

вниз

  • 2 log(1i)
  • 3 100
  • 4 10^16
  • 5 [2,2;2,2]
  • 8 512
  • inv(1i)
  • D zeros(3)

Обратите внимание, что я немного изменил подсказки для этой головоломки. Поскольку выходные данные MATLAB неизменно многословны (например, даже печать мнимой единицы 1iпревышает 10 символов [ 0 + 1.0000i]) и изменяется в зависимости от формата вывода по умолчанию, все подсказки являются простыми выражениями, отображаемый вывод которых эквивалентен выводу соответствующих решений .

Другими словами, вы можете рассматривать фактическую подсказку как disp( CLUE ), где CLUE10-символьная подсказка в приведенных выше списках.

Надеюсь, Кальвин не возражает. Я не верю, что это нарушает дух правила длины подсказки, которое может помешать создателям кроссвордов вставлять чрезвычайно трудные для генерации решения (например, слова).

ключ

    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|
 ¯¯¯¯¯¯¯¯¯¯ 
COTO
источник
3

питон

Решено feersum

Вот один, чтобы начать нас. Я использовал Python 2.7.8, чтобы получить подсказки. Удачи :)

Я раскрыл последний фрагмент, так как хэширование запрещено. Кроме того, в сетке 36 тем (я пропустил зачетную часть, когда сделал это).

Я раскрыл еще несколько символов, чтобы упростить задачу, но с разными решениями тоже все в порядке.

Сетка кроссвордов:

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

Ключи:

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

Заголовок:

a=49481
b=97381
x=

Footer:

print`x`[:10]
GRC
источник
Чтобы уточнить, находится ли нижний колонтитул в отдельной строке или pсправа от каждого фрагмента?
Увлечения Кэлвина
@ Calvin'sHobbies Нижний колонтитул начинается с новой строки.
GRC
A-через что-нибудь особенно дьявольское? У меня есть сетка, которая работает для всего, кроме этого.
feersum
@feersum Это математическое выражение, как и другие, но оно может быть довольно сложным. Помните, что вывод усекается до 10 символов.
GRC
1
Решение
feersum
3

Javascript ES4 - 37 темных, 10 зарезервированных

Решено Bazzarg

Доски

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

заголовок

a=3;I=9;t=

нижний колонтитул

;console.log(t);

Улики

через

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

вниз

  • 1 5
  • 2 "2pac"
  • 3 3072
  • 5 false

Обратите внимание, что я включил второе представление доски, помеченное как «зарезервированное», чтобы указать десять источников света с уже заполненными символами. Они предназначены для помощи решателю и ограничения / устранения неоднозначности возможных решений. Я не уверен, хочет ли Кальвин считать их темными или светлыми.

Я использовал два отдельных представления, так как некоторые из заполненных символов являются числами и могут быть перепутаны для подсказки чисел, а также для очистки доски в целом.

В любом из решений нет пробельных символов, хотя вы можете заполнять огни пробельными символами, если они работают.

Оригинальное решение

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

Как оказалось, решение bazzarg для 9 по горизонтали имеет -неправильное место, но ключ должен был быть 10вместо -10(ключ и ответ изначально были разными, и я поспешно переключился). Следовательно, мы просто скажем, что в этом случае правы два. ;)

COTO
источник
1
Интересная идея о зарезервированных персонажах. Я не буду заставлять их считаться темными, потому что тогда у людей будет еще больше стимулов не использовать их.
Увлечения Кэлвина
1
Я столкнулся с той же проблемой при создании кроссворда, но это не верно. Clues must contain at least 1 and no more than 10 characters.
jimmy23013
Я не знаю JavaScript, но что-то вроде [object Window](которое в любом случае недопустимо, как указал пользователь N) звучит так, как будто оно работает в определенной среде. Если это правда, разве это не должно быть указано?
feersum
Пользователь 23013 прав. 8.141592653589793и [object Window]слишком длинные.
Увлечения Кэлвина
Я могу усечь выражение для 6-поперечного. Должно быть очевидно, что это за число (и как его генерировать), независимо от количества десятичных знаков. Что касается 9-ти, вывод действительно специфичен для браузера (хотя я считаю, что формат, который я использовал, является общим для всех пяти основных браузеров). Я исправлю фактический ответ в этом случае.
COTO
1

Python 2, 0 темных - невосприимчивых

Python 2 только из- printза нижнего колонтитула. Он должен работать точно так же в Python 3, если вы измените printоператор.

Мне было весело делать это, и в целом я доволен и немного взволнован окончательным результатом.

Дайте мне знать, если вы думаете, что мой нижний колонтитул слишком жесток (если бы я знал, что вы могли бы воздержаться от использования программы для грубого применения, я бы убрал жестокость). Забавный факт: переменные в заголовке означают «хлеб».

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

Заголовок:

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

Footer:

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

Ключи:

через

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

вниз

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

Решение

__________ |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'| ----------

mbomb007
источник