Это задача полицейских и грабителей . Ответьте здесь, если вы полицейский (создатель кроссвордов), ответьте на сопутствующий вопрос, если вы разбойник (решатель кроссвордов). Вы можете взять на себя обе роли.
Менты (Пазлы)
Ваша задача - написать кроссворд 10 × 10, где вместо слов или фраз фрагменты кода являются решениями для разгадки. Каждая подсказка будет непустой последовательностью символов, так что при запуске фрагмента кода, на который она ссылается, эта последовательность будет выведена в стандартный вывод.
Ваш пост должен включать три вещи:
- Ваша пустая кроссвордная сетка 10 × 10, используемая
#
для темных (разделители подсказок) и_
для источников света (ячейки, которые необходимо заполнить).- Каждая горизонтальная или вертикальная последовательность из 2 или более источников света (ограниченных темными точками или краем сетки) является записью, для которой вы должны написать подсказку. Для удобства их следует нумеровать обычным способом (слева направо, сверху вниз), заменяя
_
в начале каждой записи уникальным символьным идентификатором (например, 1, 2, ..., A, B). , ...). - Ваша сетка может иметь любое количество темных.
- Ваша сетка может иметь любое количество подсказок.
- Горизонтальные записи всегда читаются слева направо, а вертикальные сверху вниз.
- Каждая горизонтальная или вертикальная последовательность из 2 или более источников света (ограниченных темными точками или краем сетки) является записью, для которой вы должны написать подсказку. Для удобства их следует нумеровать обычным способом (слева направо, сверху вниз), заменяя
- Список подсказок, который содержит каждую запись в вашем кроссворде, вниз и поперек.
- Подсказки должны содержать не менее 1 и не более 10 символов.
- Если ваши подсказки содержат пробелы, убедитесь, что они очевидны при форматировании вашего сообщения.
- Заголовок и сноска фрагменты кода, каждый из 20 символов или менее.
- Они выполняются соответственно до и после фрагмента решения и могут помочь в переименовании длинных встроенных модулей и тому подобного.
Процедура обеспечения соответствия подсказки соответствующему фрагменту кода:
- Объединить заголовок, фрагмент кода, и нижний колонтитул
[header][snippet][footer]
. - Запустите это как обычную программу (независимо от прошлых запусков) и посмотрите, что было напечатано на стандартный вывод.
- Если это соответствует подсказке, фрагмент является правильным решением.
Для простоты вы можете использовать для печати только 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 часов, он считается неуязвимым, и создатель может опубликовать решение (отредактировав свое сообщение и пометив его как неуязвимое).
Победивший полицейский - это пользователь, который отправил иммунный кроссворд с наименьшим количеством черт ( #
). В случае ничьей побеждает наибольшее количество голосов. Решение должно быть размещено для ответа, который будет принят.
Победивший грабитель - это пользователь, который разгадывает большинство кроссвордов. Тай-брейк - это их сумма положительных голосов в сопутствующем вопросе .
источник
sha512sum <<<"
, сноска:"|head -c10
(в Bash).Ответы:
JavaScript, 0 темных - невосприимчивый
Вот решение для всех вас:
Улики
Дайте мне знать, если вы считаете, что есть какие-то результаты, которые я просчитал.
источник
CJam, 41 день - решено Мартином Бюттнером
Нет верхнего, нижнего колонтитула или зарезервированных квадратов. Дайте мне знать о любых потенциальных ошибках.
У решения, которое я изначально имел в виду, не было пробелов - это не то, что нашел Мартин Бюттнер.
доска
Улики
через
вниз
Удачи!
источник
C - 26 темных, 5 зарезервированных - решено feersum
заголовок
нижний колонтитул
Улики
источник
MATLAB - 28 Darks
Решено feersum
Доски
заголовок
нижний колонтитул
Улики
через
2
-1i
eye(3)
0
sqrt(-1)
1/25000
0
[0;0;0]
вниз
log(1i)
100
10^16
[2,2;2,2]
512
inv(1i)
zeros(3)
Обратите внимание, что я немного изменил подсказки для этой головоломки. Поскольку выходные данные MATLAB неизменно многословны (например, даже печать мнимой единицы
1i
превышает 10 символов [0 + 1.0000i
]) и изменяется в зависимости от формата вывода по умолчанию, все подсказки являются простыми выражениями, отображаемый вывод которых эквивалентен выводу соответствующих решений .Другими словами, вы можете рассматривать фактическую подсказку как
disp( CLUE )
, гдеCLUE
10-символьная подсказка в приведенных выше списках.Надеюсь, Кальвин не возражает. Я не верю, что это нарушает дух правила длины подсказки, которое может помешать создателям кроссвордов вставлять чрезвычайно трудные для генерации решения (например, слова).
ключ
источник
питон
Решено feersum
Вот один, чтобы начать нас. Я использовал Python 2.7.8, чтобы получить подсказки. Удачи :)
Я раскрыл последний фрагмент, так как хэширование запрещено. Кроме того, в сетке 36 тем (я пропустил зачетную часть, когда сделал это).
Я раскрыл еще несколько символов, чтобы упростить задачу, но с разными решениями тоже все в порядке.
Сетка кроссвордов:
Ключи:
Заголовок:
Footer:
источник
p
справа от каждого фрагмента?Javascript ES4 - 37 темных, 10 зарезервированных
Решено Bazzarg
Доски
заголовок
нижний колонтитул
Улики
через
51
true
8.14159265
..."90"
0
-10
"HI"
вниз
5
"2pac"
3072
false
Обратите внимание, что я включил второе представление доски, помеченное как «зарезервированное», чтобы указать десять источников света с уже заполненными символами. Они предназначены для помощи решателю и ограничения / устранения неоднозначности возможных решений. Я не уверен, хочет ли Кальвин считать их темными или светлыми.
Я использовал два отдельных представления, так как некоторые из заполненных символов являются числами и могут быть перепутаны для подсказки чисел, а также для очистки доски в целом.
В любом из решений нет пробельных символов, хотя вы можете заполнять огни пробельными символами, если они работают.
Оригинальное решение
Как оказалось, решение bazzarg для 9 по горизонтали имеет
-
неправильное место, но ключ должен был быть10
вместо-10
(ключ и ответ изначально были разными, и я поспешно переключился). Следовательно, мы просто скажем, что в этом случае правы два. ;)источник
Clues must contain at least 1 and no more than 10 characters.
[object Window]
(которое в любом случае недопустимо, как указал пользователь N) звучит так, как будто оно работает в определенной среде. Если это правда, разве это не должно быть указано?8.141592653589793
и[object Window]
слишком длинные.Python 2, 0 темных - невосприимчивых
Python 2 только из-
print
за нижнего колонтитула. Он должен работать точно так же в Python 3, если вы изменитеprint
оператор.Мне было весело делать это, и в целом я доволен и немного взволнован окончательным результатом.
Дайте мне знать, если вы думаете, что мой нижний колонтитул слишком жесток (если бы я знал, что вы могли бы воздержаться от использования программы для грубого применения, я бы убрал жестокость). Забавный факт: переменные в заголовке означают «хлеб».
Заголовок:
Footer:
Ключи:
через
вниз
Решение
источник