Это задача полицейских и грабителей . Ответьте здесь, если вы полицейский (создатель кроссвордов), ответьте на сопутствующий вопрос, если вы разбойник (решатель кроссвордов). Вы можете взять на себя обе роли.
Менты (Пазлы)
Ваша задача - написать кроссворд 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).