Quine Anagrams!(警察的线)


22

这是警察的话题。有关强盗的线索,请单击此处

警察的任务

  • 首先,用您选择的语言写一个藜。
  • 接下来,打搅奎纳。确保做得好,因为强盗将试图对其进行解读并找到原始源代码!请注意,加扰的代码不需要工作。
  • 在此主题上发布答案。包括语言,字节数和加扰的代码。

您的程序可能无法打印到STDERR。

这是警察提交的示例:

Python,29个字节

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

强盗任务

有关强盗的线索,请单击此处

安全提交

如果发布一周后您的提交尚未被破解,则可以添加解决方案并指定它是安全的。如果您不这样做,您的提交可能仍会被破解。

计分

这是,因此安全提交且字节最少的用户将是本节的赢家。

排行榜

这是一个堆栈片段,用于生成此挑战的排行榜。为了使其正确显示,请按以下所示格式化您的提交:

# 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不,它不必是有效的程序。
奥利弗·尼

Answers:


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
好吧,我一直在通过对其他论坛(Reddit,IRC等)上的PPCG用户进行跟踪并对其大喊大叫,直到他们发布我想要的内容,从而间接地在PPCG上发表评论。也可以直接做:-)

破解 谢谢,这是一个有趣的挑战。:)
马丁·恩德

5

视网膜,20字节,破解

S`(\?)\1*

S`(\?)\1*

该程序(和输出)恰好包含两个换行符。

您可以在这里在线试用Retina。

一个小提示:

在设计此警察的过程中,我发现了一条新的最短的Retina quine,一旦这个答案被破解或很安全,我将把它发布到我们的quine挑战中。


我猜那里有一个空运行*,并且\作为配置选项来防止额外的换行。
mbomb007 '16

5

CJam,39个字节,安全

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

解:

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

使用一些基本编码进行混淆。但是,由于所有字符都是ASCII码,所以我以为有人可能会弄清楚32fm95b??b??f+:c哪些字符足以残酷其余字符。


如果我回答,我不知道如何选择排列。排序是个好主意
Luis Mendo

4

Pyth,38个字节,安全

不太打高尔夫,但是行得通。

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

未排序版本:

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

1
我有一个提子,但是缺少两个@和一个2...太近了!
史蒂文H.

快!你没有很多时间!
FliiFe

我认为已经结束了。我无法弄清楚... :(恭喜您获得安全的解决方案!
Steven H.

那里有解决方案!出于好奇,您找到的奎因是什么?
FliiFe

我有K"K2:K@Kg`Z`Z++NKN":K@Kg`Z`Z++NKN
史蒂文H.



3

JavaScript,147字节,由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是的,没有lfor alertconsole.log,没有mfor confirmprompt...是的,我很邪恶>:D我应该奖励薄脆饼干吗?
jrich

嗯,有这个函数返回,而不是警告(我敢肯定的任择议定书的版本的工作就像是到),我可以很容易地做同样的解决方案......但就是合法的吗?
ETHproductions 2016年

@ETHproductions会完全毁了它:(我要说不,但是如果流行观点另有
所指

是的,我不喜欢返回号,但我99%的肯定没有其他方法可以破解该特定解决方案。我会尽力为您找到一个有效的破解方法:)
ETHproductions'Nov 12'16

事后看来,我可能已经将@ETHproductions设置为一个小标题,但祝您好运!
jrich 2016年

3

Haskell,86个字节,由nimi破解

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

这是一个有效的Haskell表达式,它打印:

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

因此,如果Ric学习,他可以参加美味的糖果马戏团聚会!也就是说,如果他知道Syrirrr在哪里。



3

V,20个字节-安全!

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

注意尾随换行符。

我不太确定如何对它们进行加密,因此我只是按ASCII值对字符进行了排序。

与大多数V答案不同,此答案包含零个不可打印的字符。这是一个十六进制转储:

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

未加密的代码:

éññ3äl0éé$áx3|“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

另一个Haskell quine,这次的奇数为99个字节。

g%w =(g <$> w)++ w ++ pure(g.last $ w); main = putStr $ pred%“ h&x>)h =%?x * ,, x ,, qvsf)h / mbtu%x * qvuTus%qsfe&#“
在Ideone上尝试。必须删除“ g <$> w”中的空格,我将它们放在那里,因为否则<,$和>消失(最有可能被解释为html标记)。乱七八糟的字符串是程序的字符串,每个字符都映射到它的后继字符,包括最终"字符(因为它被映射到,所以可以不转义地包含在字符串中#)。helper函数%获取字符串,并使用pred(yielding code")将每个字符映射到它的前任字符,然后追加原始字符串(yielding code"gibberish_code)和解码后的字符串的最后一个字符(yielding code"gibberish_code")。要将char转换为c字符串,通常将其放入列表中就足够了,[c]因为Haskell中的字符串只是char列表,​​然而,[\,它将需要转义后继编码的字符串,因此pure使用了将任意类型提升为Monad的方式(从上下文中推断出要使用的Monad)。


差不多好了。我还有一个space!,但不知道如何摆脱它。好主意,+ 1。
nimi 2016年

@nimi Tahnks,我很好奇您的方法有何不同。
Laikoni '16

我有g%w=g w++w++pure(last.g$w);main=putStr$(pred<$>)%"...#"。因此,基本上我无法将移至<$>函数中%。现在,我看到了您的解决方案,这是显而易见的。
nimi 2016年


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>是输入(^M^J在输入端和一个)加入在输出换行符。它不是文件换行符的隐式结尾(请参阅参考资料:help 'eol')。17个字节是添加到空缓冲区的内容。(文本编辑器中的换行符很奇怪;如果不清楚,请告诉我。)




0

Python 2,105个字节,已破解!

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

另一个被破解了,所以这个难度更大。

打印“要找到解决方案,请开始工作!”



@ Sp3000噢,天哪,但是我实际上有一个原始的提子做的比这更多。无论如何,您都是通过偷懒的方式完成的:P
Outgolfer的Erik,2016年


0

QB64,89字节

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

一些要点:

  • 该代码在QBasic中不起作用:它使用QB64特定的功能
  • 语法扩展已关闭
  • 没有美元符号,只有一个引号
  • “诗”是一首诗,但韵


0

OIL,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从任何空/不存在中读取零细胞)。任何变量行都包含它们在打印时所具有的值(由于我很懒,我首先通过制作一个近似喹quin(其中那些单元格具有任意非零值)并使用结果来得到此值,这就是喹) 。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.