Куайн Анаграммы! (Нить ментов)


22

Это нить полицейских. Для темы грабителей, нажмите здесь .

Задача ментов

  • Сначала напишите квин на языке по вашему выбору.
  • Далее, карабкаться по хине. Удостоверьтесь, что сделали это хорошо, поскольку грабители будут пытаться расшифровать это и найти оригинальный исходный код! Обратите внимание, что зашифрованный код не должен работать.
  • Опубликовать ответ в этой теме. Включите язык, количество байтов и закодированный код.

Ваша программа может не печатать в STDERR.

Вот пример представления полицейского:

Python, 29 байт

nt _%=_r;_riinp;pr_='t _%%%_'

Задача грабителей

Для темы грабителей, нажмите здесь .

Безопасные представления

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

счет

Это , поэтому победителем в этом разделе будет пользователь с безопасной отправкой с наименьшим количеством байтов.

Leaderboard

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

# Language Name, N bytes

... other stuff ...

Если ваша заявка взломана, отформатируйте ее следующим образом:

# Language Name, N bytes, [Cracked!](link)

... other stuff ...

Если ваша заявка безопасна, отформатируйте ее так:

# Language Name, N bytes, Safe!

... other stuff ...

<script>site = 'meta.codegolf'; postID = 5686; isAnswer = false; QUESTION_ID = 99469;</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>


7
Тесно связаны (Та же проблема, за исключением того, что ответы не должны быть квинными.)
Мартин Эндер

1
Должен ли зашифрованный код также быть квинном? Должна ли она быть действительной программой? Я попытался запустить образец Python на кодовой панели, но он получил синтаксическую ошибку.
молоко

@milk Нет, это не обязательно должна быть действующая программа.
Оливер Ни

Ответы:


15

C #, 288 байт

Stag is a great shoW.        "="=""="="Agent"plastic"Was"tryin"to"Release"an"Astroid"."$Money$"st@le"tigers"and"Agent"plastic"got"mad"."$Money$"sic","man","t0tally"rad"."Sistrs"Rms"titAnic";"Civic"Ace"in"{sC@m}{hic}{vicis}..{cats}sAc}((@))((@)){{{>>{{{{{{}}}}}}}}}\\\\\\\;;;(@)((@)()),,;;

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


10

JavaScript, 1574 байта, безопасно!

Я потратил слишком много времени на это. Вот запутанность.

(notice that an unmatch parenthesis remains throughout the entire text.

dear "sir",

|    i cannot express my loathing to you and your things. they truly are a loathsome sight. (regar'less of their quality, they function as the most appalling devices...)[1]

|    these avocads of thine possession are most unpleasent. (ce n'est pas faux.) Queer; Careful; An' in total repulsing. in this form, those are not seulement cringe... So; CAB's is quite Cruel. (Cruel indeed...)

|    intention is not great (heh, intention, ;}) run, no, run, since {tu est le ;AqC;};

{{{{============================================}}}}

[1]: see? am i not insane? You may dictate the opposite, so i dictate thus.

9 + 4 is 13. Y is this. Y + 4 is 9 + 9 minus one. N is this. f(x) is {x + x}, so f(N) is N plus N is N + N is 3.

:^) i'm cruel; not so cruel.)
                                  rrrrrrrrrr 0nnnccnnggrrrrttssBBC
{({[}(<[<))(((((){{})}[}][[]{}(]))))|} f f r 0nnnccnngrrrrrttesBBA
())(((()))))()))()()()((((()))}{{})((} f f r 0nnnccnngrrrrrttesBBY
]]}(([][]{{{}}})()({}(){}{()}{}()[])][ f f r 4nnnccnngrrrrrttesBSY
))({})(}{)({{{{(()))())))))))()))()()( f f r 4nnnccnngrrrrrtpesqSY
)()()((((((((((Z))))))))()(()((()((((( f f r 5nnnccnngrrrrrtlefoSY
(((;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;''' f f r 3nnncccngrrrrxtleifSY
''''''''''''''''''',,,,,,,,[[[[[[]]]]] f f r 3nnncccngrrrrxtleifZQ
[ ] ] + + + + + + + + + + + + + + + ++ f f r 9nnncccggrrrrxtleifZQ
+ + + + too not fun...fffffffffffffuuu f f r 5nnncccggrrrrxtlli0ZQ
uuuuuuuuuuuu.. | | | |99S            ) f f r 0nnncccggrrrrxxll01QQ

Вот оригинальный источник!

function Y(x){return x.charCodeAt()};
function Q(x){return String.fromCharCode(x)};
N=Array.prototype;
function B(f,g,h){return function(){
  return f(g.apply(h||this,arguments));
}};
function S(f,h){return function(){
  return f.apply(h||this,N.reverse.call(arguments))}}
function id(x){return x};
function format(){
  args = N.slice.call(arguments);
  str = args.shift(); res = []+[];
  for(i = 0; i < str.length; i++){
    c = function(){return str[i]};
    if(B(Y,c) == 95){
      res += args.shift();
    } else if(S(B)(c,Y)() == 94){
      res += q = B(id,Q)(34);
      res += args.shift();
      res += q;
    } else if(Y(c()) == 39){
      i++;
      res += c() == ([][0]+[])[1] ? Q(10) : []+[];
    } else res += c();
  }
  return res;
}
console.log(format(Z="function Y(x){return x.charCodeAt()};'nfunction Q(x){return String.fromCharCode(x)};'nN=Array.prototype;'nfunction B(f,g,h){return function(){'n  return f(g.apply(h||this,arguments));'n}};'nfunction S(f,h){return function(){'n  return f.apply(h||this,N.reverse.call(arguments))}}'nfunction id(x){return x};'nfunction format(){'n  args = N.slice.call(arguments);'n  str = args.shift(); res = []+[];'n  for(i = 0; i < str.length; i++){'n    c = function(){return str[i]};'n    if(B(Y,c) == 95){'n      res += args.shift();'n    } else if(S(B)(c,Y)() == 94){'n      res += q = B(id,Q)(34);'n      res += args.shift();'n      res += q;'n    } else if(Y(c()) == 39){'n      i++;'n      res += c() == ([][0]+[])[1] ? Q(10) : []+[];'n    } else res += c();'n  }'n  return res;'n}'nconsole.log(format(Z=^,Z))",Z))


avocadsсильно меня рассмешило!
Kritixi Lithos


5

Недогрузка , 20 байт, трещины!

~*)(a):*(*a:S(*S*~S)

Я зашифровал это путем рандомизации порядка символов, потому что что может быть более зашифрованным, чем случайным?

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


Добро пожаловать в PPCG! :)
Мартин Эндер

2
Ну, я некоторое время косвенно комментировал PPCG, отслеживая пользователей PPCG на других форумах (Reddit, IRC и т. Д.) И крича на них, пока они не отправят то, что я хочу.

Трещины. Спасибо, это было весело. :)
Мартин Эндер

5

Сетчатка , 20 байт, растрескавшаяся

S`(\?)\1*

S`(\?)\1*

Программа (и выходные данные) содержит ровно два перевода строки.

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

Небольшая подсказка:

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


Я собираюсь догадаться, что там есть пробный прогон *, и \в качестве опции конфигурации, чтобы предотвратить дополнительный перевод строки.
mbomb007

5

CJam, 39 байт, Сейф

!""$)+023345679:AEORYZZ\_```bbceeffimmz

Решение:

")A!0z`eZOmRZ$Yei`E"_`\32fm95b67b43f+:c

Использует некоторое базовое кодирование для запутывания. Однако, поскольку все персонажи находятся в ASCII, я бы подумал, что кто-то сможет выяснить, 32fm95b??b??f+:cчего будет достаточно, чтобы перебить всех остальных.


Я не знал, как выбрать перестановку, если я ответил. Сортировка это хорошая идея
Луис Мендо

4

Pyth, 38 байт, сейф

Не совсем гольф, но работает.

````::""@@@@++++22ggKKKKKKKKNNNNZZZZ

Несортированная версия:

K"K++@KZ:`K@`NZNgK2"++@KZ:`K@`NZNgK2

1
У меня есть квайн, но ему не хватает двух @и одного 2... Это так близко!
Стивен Х.

Быстро ! У тебя мало времени!
FliiFe

Я думаю, что все кончено. Я не могу понять это ... :( Поздравляю с получением безопасного решения!
Стивен Х.

Там у вас есть решение! Из любопытства, что за квинну ты нашел?
FliiFe

У меня было K"K2:K@Kg`Z`Z++NKN":K@Kg`Z`Z++NKN.
Стивен Х.

3

Vim, 22 байта, треснул!

pit^[^[p00tqqqq^V"ltxltx"

Это ^[буквальный управляющий ключ, и он ^Vсчитается Ctrl-V, поэтому считается одним байтом и хранится вместе в зашифрованном коде.




3

JavaScript, 147 байт, Cracked по ETHProductions

Я буду очень впечатлен, если кому-то удастся взломать это ...

   """"''''((((()))))+++++++++.//99;;;;;;=========>>[[[[[]]]]]``````````````cccdddddddeeeeeeeeeeeffiiiiiiinnnnnnnoooooooorrrrrrrrsttttuuwwwwwwx{{}}

Предполагаемое решение:

e=o=>{n=o;``[r=`constructor`][r](`return e=>{`+o+`}`)````};d=e+"";e`for(i in window)if(/ert/.exec(i))w=window[i];w('e='+d+';d=e+"";e'+d[9]+n+d[9])`

Не @ETHproductions Да, там нет lдля alertили console.log, не mдля confirmили prompt... Да я злая>: D я должен присудить Баунти к взломщику?
янв

Ну, есть эта функция, которая возвращает, а не предупреждает (и я почти уверен, что версия OP работала так же), и я мог бы легко сделать то же самое с вашим решением ... но так ли это законно?
ETHproductions

@ETHproductions, которая полностью его испортила бы :( Я собираюсь сказать нет, но если общественное мнение диктует иначе, я думаю, это ломает большинство проблем JS
jrich

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

@ETHproductions Я мог бы сделать это слишком сложным задним числом, но удачи!
января

3

Haskell, 86 байт, взломанный nimi

putStr$"Study:ric====>>>>yummy:candy:circus:party:in:syrirrr!!!!!!$[;['=['[$]']='];]$"

Это правильное выражение Haskell, которое печатает:

Study:ric====>>>>yummy:candy:circus:party:in:syrirrr!!!!!!$[;['=['[$]']='];]$

Так что, если Рик учится, он может пойти на конфетную вечеринку! То есть, если он выяснит , где находится Сириррр .



3

V , 20 байт - безопасно!

«$ 033lpqxx | áäéééñññ

Обратите внимание на завершающий символ новой строки.

Я не совсем знал, как их зашифровать, поэтому я просто отсортировал символы по значению ASCII.

В отличие от большинства ответов V, этот содержит ноль непечатаемых символов. Вот hexdump:

0000000: 2224 3033 336c 7071 7878 7ce1 e4e9 e9e9  "$033lpqxx|.....
0000010: f1f1 f10a                                ....

Расшифрованный код:

éññ3äl0éé $ AX3 | "qpñx

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

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

Объяснение:

éñ                      " Insert a 'ñ' character
  ñ              ñ      " Put all of the following into register 'q' and run it when it's done recording
   3äl                  " Make 3 copies of the character under the cursor
      0                 " Move to the first column
       éé               " Insert an 'é' character
         $              " Move to the last column
          áx            " Append an 'x'
            3|          " Move to the third column
              "qp       " Paste register 'q' (all of the commands we just ran)
                  x     " Delete a character

3

Haskell, 99 байт, Сейф

"super.quine?"=>#$$$%%%%%&&(())))**++++,,,,/;<<==>>STaabbdeffggghhhjlmmnoppqqrrsssttttuuuvvwwwwxxxx

Еще одна квинна Хаскелла, на этот раз с хорошими нечетными 99 байтами.

g% w = (g <$> w) ++ w ++ pure (g.last $ w); main = putStr $ pred% "h & x>) h =%? x * ,, x ,, qvsf) h / MBtu% х * qvuTus% qsfe & #»
Попробуйте это на Ideone. Пробелы в "g <$> w" должны быть удалены, я помещаю их туда, потому что в противном случае <, $ и> исчезают (скорее всего, интерпретируются как тег html). Гиберская строка - это строка программы, каждый символ которой сопоставлен с ее преемником, включая финал "(который можно включить в строку без экранирования, поскольку он сопоставлен #). Вспомогательная функция %берет строку и сопоставляет каждый символ своему предшественнику, используя pred(yielding code"), затем добавляет исходную строку (yielding code"gibberish_code) и последний символ декодированной строки (yielding code"gibberish_code"). Для преобразования символа cв строку обычно достаточно поместить его в список, [c]поскольку строки в Haskell - это просто списки символов, однако преемник[is \, который должен был бы быть экранирован в строке, закодированной в качестве преемника, поэтому вместо этого pureиспользуется, который поднимает произвольные типы в монаду (какая монада используется, выводится из контекста).


Почти готово. У меня есть дополнительный spaceи !, но не знаю, как от него избавиться. Хорошая идея, есть +1.
nimi

@nimi Tahnks, мне любопытно, что твой подход сделал иначе.
Laikoni

У меня было g%w=g w++w++pure(last.g$w);main=putStr$(pred<$>)%"...#". Так что в основном я не смог переместить <$>в функцию %. Теперь, когда я вижу ваше решение, это очевидно.
Nimi


1

Javascript ES6, 49 байт (взломан)

{{$((((((('`fuck rent =+> turn off fin`')))))))}}

Плохо ли, если бы я больше сосредоточился на формировании связных слов в зашифрованном решении?

В любом случае, это мой первый вызов «Копы и грабители».

Обновление : см. Комментарии для взломанного кода.



1

FurryScript, 199 байт, безопасно!

UT  TTEDU DT   T U T D   ES DGT GEL L   GL
-<<<<<<+++++++[[[[#BESTQUINEEVER!#BESTQUINEEVER!#BESTQUINEEVER!#BESTQUINEEVER!#BESTQUINEEVER!#]]]]+++++++>>>>>>-

X   XG WPW   SS  X  PW S US WWTLWP  XS  PE

Должно быть довольно легко взломать.

Расшифрованный код

BESTQUINE[ DUP LT +SW +GT +< BESTQUINE#> ]
EVER![ DUP EX+ SW EX- LT +SW +GT +< EVER!#> ]
<BESTQUINE[ DUP LT +SW +GT +< BESTQUINE#> ]> BESTQUINE#
<EVER![ DUP EX+ SW EX- LT +SW +GT +< EVER!#> ]> EVER!#

Просто обычный quine, но с двумя подпрограммами и дополнительным кодом для обмена строками.


1

Vim, 17 байт

<CR>""&(())::::\npps

Это <CR>Enter ( ^Mили ^J) на входе и добавленная новая строка на выходе. Это не неявный конец файла новой строки (см. :help 'eol'). 17 байтов - это то, что добавляется в пустой буфер. (Новые строки в текстовом редакторе странные; дайте мне знать, если это не ясно.)



0

Befunge-93, 15 байт, треснул!

:::@#%+-_,<910g

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


Трещины. Тем не менее, сомнительно, gсчитается ли квинна, основанная исключительно на квине, правильной .
Мартин Эндер

Я знаю, что это стандартная техника квинтинга для Befunge, но что касается правил этого сообщества, связанная метапост является принятым руководством для того, что считается квин.
Мартин Эндер,

0

Python 2, 105 байт, треснул!

    ######%%%%''(((((((())))))))****--0011::::;;==@@@@@@@@@@[[[[]]]]aaaaaaggggggiiiiiiiinnpprrrrrrrrrtt~~

Другой был взломан, так что этот сложнее.

print 'Чтобы найти решение, приступайте к работе!'



@ Sp3000 О, черт возьми, да, но у меня на самом деле был оригинальный куайн, который делал что-то большее. В любом случае, вы сделали это ленивым образом: P
Эрик Outgolfer


0

QB64 , 89 байт

(_+cad:effecs:fact), =+cred:scarf:attaccd?, =+eff4c3d:cars:craccd?, (_+csc:f4c3d:fact), "

Некоторые существенные моменты:

  • Код не будет работать в QBasic: он использует функции, специфичные для QB64
  • Расширение синтаксиса выключено
  • Никаких знаков доллара и только одна кавычка
  • «Поэзия» была бы натяжкой, но она рифмуется


0

НЕФТЬ , 77 байт, Сейф

0
0
1
1
1
1
1
1
1
1
1
2
2
4
4
4
6
8
10
11
11
11
12
17
18
18
18
18
22
26
26
32

Удачи с этим.

Решение «прокомментировано» (удалите комментарии перед запуском, иначе оно не будет работать):

0 # nop twice
0
1 # copy element from cell 1 to 1 (so do nothing again)
1
1
4 # print what's in cell 1 (a zero)
1
11 # print a newline
4 # and the same thing again; printing zero and a newline
1
11
1 # copy what's in cell 2 (a 1) into cell 2
2
2
1 # copy what's in cell 12 (two lines before; a 2) into cell 18
12
18
10 # check if the value in the cell of the following line (starting with 2; we'll jump back here)
18 # (this is cell 18)
1 # is equal-ish to the one in cell 1 (a zero)
32 # if yes, jump somewhere
22 # otherwise jump one cell ahead
1 # copy what's currently in cell 18 (first a 2) into cell 26
18
26
4 # print cell 26
26
8 # increment cell 18
18
11 # print a newline
6 # and jump back to cell 17
17

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


-2

Желе , 3 байта, треснуло!

Ṙ”Ṙ

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

Вот решение:

Что, вы хотите решение? Найди это!



@MartinEnder Конечно !! Я не хотел, чтобы это продолжалось в течение 1 минуты. И я ожидал, что Деннис сделает это первым, но это не важно.
Эрик Outgolfer

Для downvoters: это просто нужно было опубликовать.
Эрик Outgolfer
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.