Кодовая лестница, копы


36

Примечание: этот вызов завершен. Материалы по-прежнему приветствуются, но не могут выиграть.

Это нить полицейских. Нить грабителей идет сюда .

Напишите код, который выводит целое число 1. Если вы добавляете, удаляете или заменяете один символ (по вашему выбору), код должен вывести целое число 2. Измените еще один символ (тот же или другой), и код должен вывести 3. Продолжайте так же, как вы можете, но не более 10. Выходные форматы по умолчанию, такие как ans = 1принимаются. Вы можете игнорировать вывод в STDERR (или эквивалентный).

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

Копы могут предоставить код без взлома через одну неделю и назвать отправку «БЕЗОПАСНЫМ». Отправка-победитель будет самой короткой отправкой без взлома, которая произведет число 10. Если никакие отправления без взлома не смогут напечатать 10, победит самый короткий код, который выдает 9, и так далее. Обратите внимание, что грабителям не нужно вносить такие же изменения, как вы, и им не нужно воспроизводить точный код (если вы не раскрываете все символы). Они должны воспроизводить только результат.

Заявки, опубликованные позднее 24 ноября, приветствуются, но не имеют права на победу (потому что вокруг будет меньше грабителей).


Пример поста:

Следующий пост является представлением на языке MyLang, он имеет длину 9 байт и работает для чисел 1 - 8.

MyLang, 9 байт, 8 номеров

Это представление работ 1 - 8. Нераскрытые символы обозначены символом подчеркивания: _.

abc____i

Leaderboard

Отказ от ответственности: таблица лидеров не проверена, и непроверенные представления могут не появиться в списке.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><style>table th,table td{padding: 5px;}th{text-align: left;}.score{text-align: right;}table a{display: block;}.main{float: left;margin-right: 30px;}.main h3,.main div{margin: 5px;}.message{font-style: italic;}#api_error{color: red;font-weight: bold;margin: 5px;}</style> <script>QUESTION_ID=99546;var safe_list=[];var uncracked_list=[];var n=0;var bycreation=function(x,y){return (x[0][0]<y[0][0])-(x[0][0]>y[0][0]);};var byscore=function(x,y){return (x[0][1]>y[0][1])-(x[0][1]<y[0][1]);};function u(l,o){jQuery(l[1]).empty();l[0].sort(o);for(var i=0;i<l[0].length;i++) l[0][i][1].appendTo(l[1]);if(l[0].length==0) jQuery('<tr><td colspan="3" class="message">none yet.</td></tr>').appendTo(l[1]);}function m(s){if('error_message' in s) jQuery('#api_error').text('API Error: '+s.error_message);}function g(p){jQuery.getJSON('//api.stackexchange.com/2.2/questions/' + QUESTION_ID + '/answers?page=' + p + '&pagesize=100&order=desc&sort=creation&site=codegolf&filter=!.Fjs-H6J36w0DtV5A_ZMzR7bRqt1e', function(s){m(s);s.items.map(function(a){var he = jQuery('<div/>').html(a.body).children().first();he.find('strike').text('');var h = he.text();if (!/cracked/i.test(h) && (typeof a.comments == 'undefined' || a.comments.filter(function(b){var c = jQuery('<div/>').html(b.body);return /^cracked/i.test(c.text()) || c.find('a').filter(function(){return /cracked/i.test(jQuery(this).text())}).length > 0}).length == 0)){var m = /^\s*((?:[^,;(\s]|\s+[^-,;(\s])+).*(0.\d+)/.exec(h);var e = [[n++, m ? m[2]-0 : null], jQuery('<tr/>').append( jQuery('<td/>').append( jQuery('<a/>').text(m ? m[1] : h).attr('href', a.link)), jQuery('<td class="score"/>').text(m ? m[2] : '?'), jQuery('<td/>').append( jQuery('<a/>').text(a.owner.display_name).attr('href', a.owner.link)) )];if(/safe/i.test(h)) safe_list.push(e);else uncracked_list.push(e);}});if (s.items.length == 100) g(p + 1);else{var s=[[uncracked_list, '#uncracked'], [safe_list, '#safe']];for(var i=0;i<2;i++) u(s[i],byscore);jQuery('#uncracked_by_score').bind('click',function(){u(s[0],byscore);return false});jQuery('#uncracked_by_creation').bind('click',function(){u(s[0],bycreation);return false});}}).error(function(e){m(e.responseJSON);});}g(1);</script><link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/Sites/codegolf/all.css?v=7509797c03ea"><div id="api_error"></div><div class="main"><h3>Uncracked submissions</h3><table> <tr> <th>Language</th> <th class="score">Score</th> <th>User</th> </tr> <tbody id="uncracked"></tbody></table><div>Sort by: <a href="#" id="uncracked_by_score">score</a> <a href="#" id="uncracked_by_creation">creation</a></div></div><div class="main"><h3>Safe submissions</h3><table> <tr> <th>Language</th> <th class="score">Score</th> <th>User</th> </tr> <tbody id="safe"></tbody></table></div>


Не уверен, что понимаю ... учитывая произвольный код в CJam, который выдает 1, как я могу предотвратить повторное добавление) грабителями для генерации остальных чисел? То же самое будет справедливо для довольно многих языков
Луис Мендо

2
Если это возможно для любой программы, которая выводит данные, 1то кажется, что CJam - плохой выбор языка для этой задачи. Нет способа помешать грабителям сделать это.
Стьюи Гриффин

3
@LuisMendo Ну, это, безусловно, сделает это более интересным ...
LegionMammal978

1
@DanielJour Может быть изменено до любого числа, но максимальное количество, которое нужно найти грабителям, это 10. Это правило действует, поскольку многие представления, вероятно, могут быть расширены до бесконечности (теоретически), поэтому оценка, основанная на самом высоком достигнутом числе, не будет иметь смысла.
Стьюи Гриффин

1
Возможно, вы захотите попробовать дисквалифицировать запись, только если заголовок содержится crackedв какой-либо форме. Это то, что в настоящее время делает редизайн usercript .
ETHproductions

Ответы:


1

Гексагония , 18 байт, 10 цифр, БЕЗОПАСНО

Это представление работ 1 - 10. Нераскрытые символы обозначены символом подчеркивания: _.

.__{_]5[$@.;=@$!!1

Вы можете попробовать Hexagony онлайн здесь.

Мое решение:

1:   .<[{8]5[$@.;=@$!!10
2:   .<[{8]5[$@);=@$!!10
3:   2<[{8]5[$@);=@$!!10
4:   3<[{8]5[$@);=@$!!10
5:   4<[{8]5[$@);=@$!!10
6:   5<[{8]5[$@);=@$!!10
6:   7<[{8]5[$@);=@$!!10
8:   7<[{8]5[$@);=@$!!10
9:   8<[{8]5[$@);=@$!!10
10:  9<[{8]5[$@);=@$!!10

Шестнадцатеричный вывод 1:

Попробуйте онлайн!

Full Hex:
  . < [ 
 { 8 ] 5
[ $ @ . ;
 = @ $ ! 
  ! 1 0

Important parts:
  . < .
 . 8 . 5
. $ @ . ;
 . . $ .
  . 1 .
  1. На <грани памяти есть 0, так получается.
  2. Хиты 1
  3. Перейти к 5
  4. Перепрыгивает 8, но переворачивается <и возвращается 8на обратный путь.
  5. Хиты 5снова
  6. Перепрыгивает 1
  7. Хиты <в этот момент, значение памяти 1585, который, мод 256, оказывается ASCII1
  8. Наконец печатает и выходит с ;@.

Шестнадцатеричный вывод 2:

Попробуйте онлайн!

Important parts:
  . < .
 . 8 . 5
. $ @ ) ;
 . . $ .
  . 1 .

Это следует по тому же пути, но на обратном пути он попадает в a, )что увеличивает край памяти до 1586 или 2.


Шестнадцатеричный вывод 3-9:

Попробуйте онлайн!

Important parts:
  2 < [
 . . ] .
. $ . ) .
 . @ . !
  . 1 .
  1. Хиты 2
  2. Теперь край памяти положителен, когда он доходит <, поэтому он уменьшается.
  3. ]Изменяет указатель команды, но сразу же возвращается с[
  4. ) приращения к 3
  5. ! Печать 3
  6. $осталось от первых двух чисел, поэтому мы перепрыгиваем через конец ( @)
  7. 1 меняет границу памяти, но сейчас это не имеет значения.
  8. < отражает указатель назад.
  9. Опять 1не имеет значения, потому что мы ударили, @чтобы закончить программу.

11

Сетчатка , 2 байта, 10 номеров, Трещины

_1

Работает от 1 до 10, _является скрытым персонажем. Это не должно быть слишком сложно, но я надеюсь, что это несколько интересная головоломка. :)

Вы можете попробовать Retina онлайн здесь.


2
Argh, не могу понять 10: p
LegionMammal978

@ LegionMammal978 :)
Мартин Эндер

2
Взломано FryAmTheEggman: codegolf.stackexchange.com/a/99560/32700
TheNumberOne

10

Октава, 55 байт, 10 цифр, трещины

(o__(O_o_(@(__o)o__-O}_)_(0<O,{_(_o_O-1)+1_@(_1}_)(__o_

_ это неизвестный персонаж.

Решение

(o=@(O,o)(@(O,o)o{2-O}())(0<O,{@()o(O-1)+1,@()1}))(0,o)% затем изменяя самый последний 0на и 1,2,3т. д.

Учитывая x, это действительно рекурсивный расчет x+1. Он состоит в основном из двух анонимных функций. Один из них обеспечивает ifоператор для привязки рекурсии:

if_ = @( boolean, outcomes) outcomes{ 2 - boolean}();

это просто злоупотребление тем фактом, что логические значения оцениваются как 0или 1. Эта функция принимает логическое значение и массив ячеек из двух функций и оценивает одну или другую из этих двух функций в зависимости от логического значения. Вторая часть - реальная рекурсия:

plus_one = @(n,f) if_(0<n ,{@()f(n-1)+1, @()1})

поскольку любая функция является анонимной, вы не можете напрямую получить к ней доступ через itsefl. Вот почему нам нужен второй аргументfпервый. Позже мы предоставим дескриптор функции instelf в качестве второго аргумента, поэтому конечная функция будет выглядеть следующим образом:

plus_one_final = @(n)plus_one(n,plus_one);

Итак, в этой нотации мое представление выглядит так :

(plus_one=@(n,f)(@(boolean,outcomes)outcomes{2-boolean}())(0<n,{@()f(n-1)+1,@()1}))(n,f)

Я недавно спросил о рекурсивных якорях для анонимных функций в MATLAB в stackoverflow .


19
o_O O____o O_O o_O
TuxCrafting

Я не уверен, действительно ли это так трудно взломать =)
flawr

Ну, это чертовски непросто взломать! Может быть, может сделать это с ручкой и бумагой (!)
Стьюи Гриффин

Я воспринимаю это как комплимент :) Думаю, вам понравится мое решение, но я не собираюсь ничего раскрывать, пока оно не будет взломано / не станет безопасным.
flawr



8

Perl, 12 байт, 10 номеров, Cracked!

Подчеркивания представляют неизвестные символы.

____;say__-9

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

(Предполагаемое решение было таким же, как и трещина. По сути, это просто проблема с назначением 10 переменной в четырех символах, что на удивление сложно в Perl; в отличие от многих языков игры в гольф, в ней нет переменной, начинающейся с подсказки. 10.)


1
Трещины . Сначала я думал, что это что-то вроде $_=1;say;#-9, но я не мог понять, как получить 10.
Riley

7

Perl, 46 байт, 10 цифр, сейф

Проблема

__b_b_\__}_b_b_b_0_;
$b[0]=10;$b{0}=1;say$b[0]

Короткие проблемы, как правило, быстро решаются, поэтому я решил попробовать более длинную. Более длинные также имеют тенденцию быть сломанными, если люди оставляют достаточно промежутка, чтобы красть что-то непослушное как sayили exitв, таким образом, все промежутки здесь коротки. Скрытые символы представлены с помощью _.

Мое решение

sub b{\@_}*b=b$b{0};
$b[0]=10;$b{0}=1;say$b[0]

Для того, чтобы напечатать 2, 3 и т.д., вплоть до 9, сохранить изменения номера , присвоенные $b{0} во второй строке (то есть $b{0}=2, $b{0}=3и т.д.). Программа на 9 выглядит так:

sub b{\@_}*b=b$b{0};
$b[0]=10;$b{0}=9;say$b[0]

Затем, чтобы получить 10, закомментируйте первую строку, добавив #к ней символ.

объяснение

Первое, на что следует обратить внимание, это то, что решение не является действительно удачным, кроме удаления пробелов: если мы выложим его с более читаемым пробелом, мы получим следующее:

sub b { \@_ }
*b = b $b{0};
$b[0] = 10;
$b{0} = 1;
say $b[0];

Обычно, когда вы получаете доступ к аргументам подпрограммы в Perl, вы делаете это, копируя их из @_. Для этого есть веская причина: @_псевдонимы аргументов, которые задаются подпрограммой (например, (sub { $_[0] = 3 })->($x)присваиваемые им $x), что обычно нежелательно.

Хотя это @_может показаться волшебным, на самом деле он просто использует стандартную функцию внутренних компонентов Perl (которая легко доступна из XS, но встречается только в нескольких странных случаях в чистом Perl, например, @_сама): массив не хранит свои элементы напрямую , а точнее по ссылке. Таким образом, когда мы вызываем bво второй строке ниже, Perl генерирует массив (вызывающий его @_), первый элемент которого является ссылкой на то же хранилище, которое $b{0}использует. (Значения хеш-функции также сохраняются по ссылке; $ _ [0] и $ b {0} ссылаются на одно и то же хранилище в этой точке.) Поскольку @_мы не делаем ничего особенного с внутренней точки зрения, мы можем взять ссылку к нему так же, как мы могли бы с любым другим массивом, заставляя его пережить подпрограмму, в которой он определен.

Переменные Perl также ссылаются на хранение данных по ссылке. Давным-давно люди использовали код, подобный тому, *x = *y;который задают $xкак псевдоним $y(посредством того, что он ссылается на одно и то же), так же @xкак псевдоним @y, %xкак псевдоним %yи так далее. Это скорее нарушает инвариант, что переменные с похожими именами не должны действовать одинаково, поэтому современный Perl предоставляет альтернативу; Присвоение ссылки на typeglob переопределяет только переменную, которая соответствует типу ссылки (поэтому *x = \%yпсевдоним %xбудет указывать на то же хранилище, что и %y, скажем, оставить в $xпокое). Этот синтаксис, в частности, не заботится о том, имеет ли имя хранилища, которому вы присваиваете имя, поэтому, когда мы присваиваем возвращаемое значениеb(который является ссылкой на массив, который сохраняет массив, ранее называвшийся @_живым) *b, что происходит в том случае, если @bон заменяется псевдонимом списка аргументов для вызова b(оставляя %bбез изменений). Это означает, в частности, что $b[0]и $b{0}теперь указывают на одно и то же хранилище, и назначение одного из них, следовательно, изменит другое. С этого момента все совершенно просто.

Документация Perl на самом деле не говорит об этих деталях, поэтому я не удивлен, что кто-то получил трещину; природа @_не совсем похожа на другие массивы не особо подчеркивается, и большинство стилей кодирования направлены на то, чтобы минимизировать эффекты, которые они имеют, а не усиливать их.


1
Я так заинтригован этим. Я узнал о псевдо-хешах и освежил свою память о ссылках и разыменованиях, но я не могу понять это!
Дом Гастингс

1
@DomHastings, ... и я дурачился с различными демаркационными символами для qи и sи yи m(в основном, пытаясь завершить их после $b[0]назначения), но у меня ничего не работает (пока).
msh210

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

Я чувствую, что был разочарованно близко. Я sub b{\@_}зацементировался в своем уме, и, хотя я экспериментировал с этим, *bя не мог получить это! Спасибо за объяснение. Я мог бы замять это в вашем объяснении, но почему бы sub b{\@_}*b=b$b[0]не сделать то же самое?
Дом Гастингс

Вы пытаетесь сделать так, чтобы элемент массива и элемент хеша разделяли память, поэтому вам нужно упомянуть и то, и другое. Элемент массива неявно упоминается, когда вы присваиваете ссылку на массив ( \@_) *b, но вы должны явно упомянуть хеш-элемент самостоятельно. С помощью *b=b$b[0], вы в основном просто совмещаете новое $b[0](после изменения, где @bуказывает) с тем, $b[0]что существовало в начале программы, что бесполезно.

5

JavaScript, 30 байтов, 10 цифр, взломан

alert(Array(_)________.length)

Не должно быть слишком сложно, но, надеюсь, это достаточно сложно, чтобы бросить вызов. :) Нераскрытые символы отмечены значком _.


Хороший! У меня было время, чтобы решить эту проблему, это было легко, но в то же время сложно.
Kritixi Lithos

5

Perl, 14 байт, 10 цифр, трещины

say_!"___"%""_

Работы от 1 до 10. _являются скрытыми персонажами.

Я думаю, что это не должно быть слишком трудно взломать. У меня сложнее, на 22 байта, я выложу, если этот взломан.


Оригинальный код:

say"!"=~y"%""c

И заменить "!"строку длины номера , который вы хотите напечатать, например !, !!, !!!и т.д.

Однако ais523 нашел другой способ:

say"!"+1#"%""r

2
Трещины . Я подозреваю, что это совсем не то, ради чего ты собирался. (Я пытался что-то сделать с помощью регулярных выражений, но это было намного проще.)



4

Желе , 7 байтов , 10 цифр, трещины

“1‘ỌȮḊ‘

Никаких подстановочных знаков.

Достигнутая трещина (если использовать eval с аргументом) была, как многие, кажется, в этой теме, не тем, что предполагалось.

Предполагаемая трещина была:

“1‘ỌȮḊ‘ - (prints 1)
“1‘     - code page index list of characters "1": [49]
   Ọ    - cast to ordinals: ['1']
    Ȯ   - print (with no line feed) and return input: effectively prints "1"
        -     (but if left at this would then implicitly print another "1")
     Ḋ  - dequeue: []
      ‘ - increment (vectorises): []
        - implicit print: prints ""

“1‘ỌŒḊ‘ - (prints 2)
“1‘Ọ    - as above: ['1']
    ŒḊ  - depth: 1
      ‘ - increment: 2
        - implicit print: prints "2"

“1‘ỌŒḊ‘‘ - (prints 3)
“1‘ỌŒḊ‘  - as above: 2
       ‘ - increment: 3
         - implicit print: prints "3"

... keep adding an increment operator to print 4 - 10.

Я мог бы взломать его, если бы '' 'было на следующей строке. Так близко ... :)
Kritixi Lithos

Треснул, но не могли бы вы объяснить, что происходит 10, потому что мне повезло, когда я пробовал вещи, которые могли бы сработать.
Хеди

@ Хеди, ниндзя, слишком быстро, я работал над этим.
Эрик Outgolfer

@ Хеди - твоя была непреднамеренная трещина. 10Я полагаю, что способ работы для вас заключается в оценке желейного кода в строке 9с аргументом 0(значение по умолчанию для ввода), который затем удаляется (без эффекта), а затем увеличивается.
Джонатан Аллан

... на самом деле я думаю, что способ 10работает для вас, оценивая желейный код в строке 9с аргументом []- значение по умолчанию для ввода 0, исключенное из очереди - которое вы затем увеличиваете.“1‘‘‘‘‘‘‘‘‘Ọv0Ḋ¤‘
Jonathan Allan

4

Befunge-93, 11 байт, 10+ номеров, Cracked

Это представление работает не менее 1 - 10. Нераспознанные символы отмечены значком .

□□5:**-□-.@

Попробуйте онлайн

Должен сказать, что меня впечатлило, что два человека могут придумать для этого независимые решения, чего я не ожидал. В то время как Мартин пришел первым, я даю «победу» Sp3000, поскольку их решение более мобильно.

Это было мое намеренное решение, хотя:

g45:**-2-.@
g45:**-1-.@
g45:**-1\.@
g45:**-1\+.@
g45:**-2\+.@
...
g45:**-7\+.@

Поскольку недопустимость стека в Befunge интерпретируется как 0, значение gjust, читаемое из 0,0, возвращает значение ASCII 'g', а именно 103. 45:**-вычитает 100, давая вам 3. Затем 2-вы получаете 1.

Для третьей итерации, -(вычитание ) изменяется на \инструкцию (swap), поэтому 3 становится самой верхней записью стека. И на четвертой итерации +вставляется (добавить) инструкция, таким образом добавляя 3 к 1, давая 4.


Трещины. Мне любопытно посмотреть, какое решение вы имели в виду. :)
Мартин Эндер

@MartinEnder. Как я прокомментировал ваш ответ, я бы хотел на некоторое время оставить скрытое решение на случай, если кто-то захочет попробовать более переносимое решение. Это нормально?
Джеймс Холдернесс

Конечно, это нормально. :)
Мартин Эндер

"15:**-6-.@дает 1, но я не уверен, является ли тот факт, что "толчок 32 сверху (из-за неявных пробелов) является артефактом интерпретатора TIO или частью спецификации Befunge, потому что при попытке нескольких интерпретаторов кажется, что не все интерпретаторы делают это. Ваше решение зависит от этого поведения?
Sp3000

@ Sp3000 Это было не мое решение, но это совершенно верно, Befunge - неверные интерпретаторы, которые не поддерживают. Если вы отправите ответ с остальной частью последовательности, я определенно считаю это полным взломом.
Джеймс Холдернесс

4

R, 21 байт, 10 числа треснувших

__i___________i______

Работает на 10 номеров. _это скрытый персонаж.

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

which(letters%in%"a")
which(letters%in%"b")
и т.п.


@StewieGriffin Это мой первый пост на этом сайте, и я не знаю норм. У меня есть еще один вызов R - немного сложнее, я думаю. Могу ли я добавить еще один ответ? Или добавить это к этому?
Грегор

Добавляя новый, это совершенно нормально (как отдельный) 😊 добро пожаловать на сайт 😊
Stewie Griffin

Я взломал это здесь ?
Тенсибай

@Tensibai Cracked :)
Грегор


3

Октава, 32 байта, 10 цифр. Трещины

_n_(isprime(floor(s____i__ i____

_ is a hidden character.

You can try Octave online here.


Original solution:

1: nnz(isprime(floor(sqrt(i):pi')))

2: nnz(isprime(floor('sqrt(i):pi')))

3: nnz(isprime(floor('sqrt(i):pia')))

4: nnz(isprime(floor('sqrt(i):piaa')))

...


Very nice! Cracked. Not sure if I reproduced your code though?
Stewie Griffin

@StewieGriffin Well done! I should have revealed more characters... :-D
Luis Mendo

1
Damn that was clever :) Too bad you couldn't say it was MATLAB... One more character would probably have made it much harder... I enjoyed it though... I used a full 25 minutes :)
Stewie Griffin

@Stewie Yes, you made good use of non-Matlab features! :-)
Luis Mendo

3

Octave, 17 bytes, 10 numbers, Cracked

_i_(__i__(2_5_))

Unrevealed characters are marked with _.

Intended solution:


    fix(asind(2/59))
    fix(asind(3/59))
    fix(asind(4/59))
    fix(asind(5/59))
    fix(asind(6/59))
    fix(asind(7/59))
    fix(asind(8/59))
    fix(asind(9/59))
    fix(asind(9/55))
    fix(asind(9/50))


cracked (finally=) but probably not with your original approach, right?
flawr

Nice, added my approach in a spoiler tag :)
Stewie Griffin

2
Oh your solution is really clever!!!
flawr

3

Octave, 19 bytes, 10 numbers, cracked

__sca__1_)___'-_6_'

_ is the hidden character.

Intended solution:

pascal(10)('a'-96)'



I couldn't remember any function with sca. Coming from you, I should have thought of matrix functions :-)
Luis Mendo

There is a reason why I made a complete list of Octave function names =)
flawr



3

JavaScript, 22 bytes, 10 numbers, cracked

alert(0_6_4_>_0_2_0_7)

_ is the hidden character.

Hint about the intended solution

The character that needs to be changed to generate all numbers is always the same.



@ais523 Well done!
Arnauld

3

JavaScript 21 Bytes, 10 Numbers Cracked

alert(b_oa_"3____1"))

Unrevealed characters are marked with _

Cracked

My Version:

alert(btoa|"3"&("1"))
alert(btoa|"3"^("1"))
alert(btoa|"3"^("0"))
alert(btoa|"3"^("7"))
alert(btoa|"2"^("7"))
alert(btoa|"1"^("7"))
alert(btoa|"0"^("7"))
alert(btoa|"0"^("8"))
alert(btoa|"0"^("8"))
alert(btoa|"2"^("8"))



3

Python 3, 16 bytes, 10 numbers, cracked

print(?%??f?r?t)

Unrevealed characters are marked with ?. This is probably a bit easy since there's only five question marks, but I'm hoping it'll be a fun one.



3

C#, 90 bytes, 10 numbers, cracked

using ______________________________________________;class C{static void Main(){_______;}}

I honestly have no idea how hard this is to crack.

Edit: Oops, transcription error. One _ too few after using.

Now cracked by Hedi, who found the intended (barring the class name) solution.


d'oh... one too short for write()
masterX244

Didnt help... wrong gap. And that semicolon after first gap thwarted amother idea
masterX244


3

JavaScript 33 Bytes, 10 Numbers Cracked x2

Oops I post posted my line for generating 10 Which Hedi cracked as though it was for 1

alert(_to__"_Xc0__0_B6____Zp=="))

Version intended to post for generating 1

alert(_to__"_Xc0__0_Bf____Zp=="))

Unrevealed characters are marked with _

alert(btoa|"0Xc0"-0xBf|!("Zp=="))
alert(btoa|"0Xc0"-0xBe|!("Zp=="))
alert(btoa|"0Xc0"-0xBd|!("Zp=="))
alert(btoa|"0Xc0"-0xBc|!("Zp=="))
alert(btoa|"0Xc0"-0xBb|!("Zp=="))
alert(btoa|"0Xc0"-0xBa|!("Zp=="))
alert(btoa|"0Xc0"-0xB9|!("Zp=="))
alert(btoa|"0Xc0"-0xB8|!("Zp=="))
alert(btoa|"0Xc0"-0xB7|!("Zp=="))
alert(btoa|"0Xc0"-0xB6|!("Zp=="))

1

I added a crack for the intended version. I'll try to find a way to get to your solution for 10: console.log(atob|"0Xc0"-0xB6|("Zp==")) I think
Hedi

I updated my answer with what should be the intended crack.
Hedi

3

Python, 10+ numbers, 61 bytes, Cracked!

Here was the code I posted:

try:x
except:print(__import__('sys').??c??n??()[????b????e???

The original code was:

try:x
except:print(__import__('sys').exc_info()[2].tb_lineno)

Basically, it throws an error ('x' is not defined) and then prints the line the error was found on. So, just keep adding newlines at the beginning to increment the number.

I knew it wouldn't be hard to crack - I just wanted a funny way to print numbers - but I wasn't expecting Sp3000 to get it so fast, that's some pro skills!


Cracked - amusing, but yeah there aren't really many options :P
Sp3000

@Sp3000 yeah, I wanted to make sure nobody could squeeze in deleting what's on STDOUT and printing a number, but I guess I narrowed it down too much. Ah well.
FlipTack

Revealing sys definitely made it a lot simpler, since it gave a nice starting point for searching :P
Sp3000

2

05AB1E, 11 bytes, Cracked!

3628801__0_

Works from 1-10. _ is a hidden character.

Intended Solution:

3628801R¬0+ # 1
3628801R¬1+ # 2
3628801R¬2+ # 3
3628801R¬3+ # 4
3628801R¬4+ # 5
3628801R¬5+ # 6
3628801R¬6+ # 7
3628801R¬7+ # 8
3628801R¬8+ # 9
3628801R¬9+ # 10




2

Octave, 25 bytes, 9 numbers. Cracked

__a__repmat(__one___,__)_

_ is a hidden character.


@StewieGriffin Sorry!! Only 9. My mistake. I'm really sorry. Edited
Luis Mendo


1
Sorry =P I'm gonna post a replacement=)
flawr

@Stewie It's been my fault, sorry! I'll post a modified version later, since my original solution is different
Luis Mendo

For the record, my crack was identical to flawr's. I've posted another Octave one here.
Stewie Griffin
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.