Это часть задачи полицейских и грабителей . Иди сюда за грабителями.
Вызов ментов
Вы должны написать программу или функцию на языке по вашему выбору, который выводит строку Haystack
. Однако должна быть возможность удалить некоторое подмножество символов из вашей программы (без переупорядочения остальных), чтобы полученная строка также была действительной программой на том же языке, которая печатает Needle
вместо этого. Обе программы / функции могут опционально печатать один завершающий символ новой строки (независимо друг от друга), но не более того. Вывод чувствителен к регистру и должен соответствовать точному предоставленному регистру.
Ваша цель, конечно, очень хорошо спрятать «иголку». Но обратите внимание, что ваша заявка может быть взломана любым действительным решением, а не только тем, которое вы намеревались.
Пожалуйста, включите в свой ответ:
- Язык (и версия, если применимо) вашей заявки.
- Размер программы Haystack в байтах.
- Сама программа Haystack.
- Метод вывода, если это не STDOUT.
- Если возможно, ссылка на онлайн переводчик / компилятор для выбранного вами языка.
Ваша заявка может быть либо программой, либо функцией, но не фрагментом, и вы не должны использовать среду REPL. Вы не должны принимать никаких входных данных, и вы можете вывести их через STDOUT, возвращаемое значение функции или параметр функции (out).
Обе программы / функции должны быть выполнены в течение 5 секунд на приемлемом настольном компьютере и должны быть детерминированными. Вы не должны использовать встроенные модули для хэширования, шифрования или генерации случайных чисел (даже если вы запрограммировали генератор случайных чисел на фиксированное значение).
В интересах справедливости, должен быть свободно доступный переводчик или компилятор для выбранного вами языка.
Ответ взломан, если программа Needle найдена. Если ваш ответ не был взломан в течение 7 дней, вы можете указать предполагаемую программу «Игла» в своем ответе, что сделает ваше представление безопасным. Пока вы не раскрываете свое решение, оно все равно может быть взломано грабителями, даже если 7 дней уже прошло. Побеждает самая короткая безопасная программа Haystack (измеряется в байтах).
Примеры
Вот несколько простых примеров на разных языках:
Ruby
Haystack: puts 1>0?"Haystack":"Needle"
Delete: XXXXXXXXXXXXXXX
Needle: puts "Needle"
Python 2
Haystack: print "kcatsyaHeldeeN"[-7::-1]
Delete: XXXXXXXX XX
Needle: print "eldeeN"[::-1]
Обратите внимание, что подмножество удаленных символов не обязательно должно быть смежным.
Uncracked Материалы
<script>site = 'meta.codegolf'; postID = 5686; isAnswer = false; QUESTION_ID = 144600;</script><script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script><script>jQuery(function(){var u='https://api.stackexchange.com/2.2/';if(isAnswer)u+='answers/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJeRCD';else u+='questions/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJO6t)';jQuery.get(u,function(b){function d(s){return jQuery('<textarea>').html(s).text()};function r(l){return new RegExp('<pre class="snippet-code-'+l+'\\b[^>]*><code>([\\s\\S]*?)</code></pre>')};b=b.items[0].body;var j=r('js').exec(b),c=r('css').exec(b),h=r('html').exec(b);if(c!==null)jQuery('head').append(jQuery('<style>').text(d(c[1])));if (h!==null)jQuery('body').append(d(h[1]));if(j!==null)jQuery('body').append(jQuery('<script>').text(d(j[1])))})})</script>
источник
Ответы:
Стог сена , 84 байта, трещины
Попробуйте онлайн!
Это выглядит (для меня) довольно запутанным, но если вы найдете правильное подмножество, это будет слишком просто ... о, хорошо, просто чтобы начать работу: P
источник
Гексагония , 37 байт
Попробуйте онлайн!
Просто мой обязательный вход в Гексагонию ...
Для удобства вот развернутый код:
Как это работает:
Программа начинается с
H
, затем мы переходим к IP # 5. Этот IP начинается в западном углу, отскакивая и оборачиваясь во время выполнения (в действительности);a;y;s;
(так мы напечаталиHays
). Затемs
получает приращение кt
пути)
и распечатано, то мы проходим черезNe...(c
доходя доa;c;
(все еще подпрыгивая небольшой участок шестиугольника). Программа хитов_
, отражает через\
кl
которой получает декрементируется кk
пути(
, который проходит через другой\
перед печатью и программа заканчивается на@
.Подробная версия
Показать фрагмент кода
источник
Brain-Flak , 146 байт ( треснувший )
Попробуйте онлайн!
Предполагаемое решение, 80 байтов
источник
JavaScript, 95 байт (ES6), Cracked
Функция, возвращающая строку.
"Стог сена" демо
Показать фрагмент кода
источник
Haskell , 168 байт ( взломано Ними )
Попробуйте онлайн! Оценивая идентификатор
h
возвращает строку"Haystack"
, после некоторых удаленийh
выходов"Needle"
.источник
Желе , 41 байт ( треснувший )
Попробуйте онлайн!
Хорошей охоты!
источник
Гексагония , 32 байта. Трещины
Я не мог решить Мартина , поэтому я публикую свои собственные.
Попробуйте онлайн!
Вот это отформатировано:
Моя цель была в том, чтобы оба решения использовали как можно больше IP-адресов, я получил 6 для Needle и только 5 для Haystack .
источник
Pyth , 44 байта ( треснувший )
Попробуй это здесь.
источник
Java (OpenJDK 8) ,
226217 байт ( взломан )Первый в истории код гольф, возможно, очень простой, но это было весело!
Попробуйте онлайн!
источник
return new Main().d();
чтобыSystem.out.print(new Main().d());
в главной-методе.dc , 148 байт ( треснутый )
Попробуйте онлайн!
Это довольно просто, но я надеюсь, что решить хотя бы немного будет весело: з
источник
JavaScript, 119 байт (ES6), Cracked
Функция, возвращающая строку. Довольно долго и не так сложно, но, надеюсь, весело.
"Стог сена" демо
Показать фрагмент кода
источник
Python 2.7.2, 103/117 байт, Cracked
Версия функции (117 байт):
Версия программы (103 байта):
Это должно
Haystack
хорошо напечатать . Проверено на Python Fiddle .Кстати, это первая попытка.
Не уверен, что версия программы считается фрагментом, поэтому я поместил обе версии здесь.
источник
Python 2.7.10 с Numpy 1.12.1,
208209 байт ( взломан )Похоже, что в Numpy есть Игла и Стог сена! Вот стог сена; посмотрим, сможете ли вы найти Игла. Надеюсь, вам было так же весело искать Иглу, как и мне.
Выводит как указано:
Вы можете repl.it .
источник
Java 8, 321 байт, Cracked
Попробуй это здесь.
Более читабельно:
Не уверен, что он слишком длинный / жесткий ... С другой стороны, Java в целом довольно длинный, поэтому правильное сокрытие 'Needle', конечно, значительно увеличивает количество байтов ..
Если никто не взломает его, я ' позже добавлю несколько спойлеров.
источник
Рубин , 185 байт, взломан cab404
Попробуйте онлайн!
Я попытаюсь придумать что-нибудь подлое, но сейчас вот попытка «просто, но противно».
источник
Brain-Flak , 188 байт ( треснувший )
Я только что увидел ответ Funky Computer Man, когда я написал это.
Это несколько запутано.
Попробуйте онлайн!
Предполагаемое решение, 96 байт:
Попробуйте онлайн!
источник
T-SQL, 757 символов взломан
Извините за удаление моего предыдущего ответа - я редактировал его слишком много раз, когда запутывал, и не хотел ничего выдавать. :)
В любом случае, запутывание в SQL немного затруднительно, если только вы не хотите делать такие сумасшедшие вещи, как это , а я не вкладывался.
Кроме того, я безоговорочно не извиняюсь за присвоение имен своим переменным после Dota.
SQL Fiddle
Если это самый простой ответ в этой теме, вы, вероятно, правы. : P Сложно обмануть SQL.
источник
Ly , 40 байт, трещины
Попробуйте онлайн!
О, парень, еще один Ли CNR представления. Они не очень хорошо работали исторически (возможно, из-за меня, а не из-за языка),
но мы увидим, что эти тарифыи сегодня не исключение.Решение:
источник
Java , 345 байт, трещины
Попробуйте онлайн!
Действительно долго и, вероятно, легко взломать, но, по крайней мере, у него есть
Stack<Hay>
!источник
TI-BASIC, 119 байт (безопасный)
Выход хранится в
Ans
.Решение
Удалите символы из,
Str1
чтобы дать ему длину 1.источник
PHP, 44 байта, взломан
довольно легко взломать; но мне нравится это.
Запустите
-nr
или попробуйте онлайн .источник
Aceto , 154 байта (Сейф)
Попробуйте онлайн!
источник