Quine đảo chữ! (Chủ đề của cảnh sát)


22

Đây là chủ đề của cảnh sát. Đối với chủ đề của tên cướp, bấm vào đây .

Nhiệm vụ của cảnh sát

  • Đầu tiên, viết một quine bằng ngôn ngữ bạn chọn.
  • Tiếp theo, tranh giành quine. Hãy chắc chắn để làm điều này tốt vì những tên cướp sẽ cố gắng giải mã nó và tìm mã nguồn gốc! Lưu ý rằng mã được xáo trộn không cần phải hoạt động.
  • Gửi một câu trả lời về chủ đề này. Bao gồm ngôn ngữ, số byte và mã được xáo trộn.

Chương trình của bạn có thể không in ra STDERR.

Dưới đây là một ví dụ về đệ trình cảnh sát:

Python, 29 byte

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

Nhiệm vụ của bọn cướp

Đối với chủ đề của tên cướp, bấm vào đây .

Đệ trình an toàn

Nếu bài đăng của bạn chưa bị bẻ khóa sau một tuần đăng, bạn có thể thêm giải pháp và chỉ định rằng nó an toàn. Nếu bạn không, trình của bạn vẫn có thể bị bẻ khóa.

Chấm điểm

Đây là , vì vậy người dùng có trình an toàn với ít byte nhất sẽ là người chiến thắng trong phần này.

Bảng xếp hạng

Dưới đây là đoạn trích ngăn xếp để tạo bảng learderboard cho thử thách này. Để nó hiển thị đúng, vui lòng định dạng bài gửi của bạn như thế này:

# Language Name, N bytes

... other stuff ...

Nếu bài đăng của bạn bị bẻ khóa, vui lòng định dạng như thế này:

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

... other stuff ...

Nếu trình của bạn an toàn, định dạng như thế này:

# 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
Quan hệ gần gũi. (Thử thách tương tự ngoại trừ câu trả lời không nhất thiết phải là câu hỏi.)
Martin Ender

1
Là mã bị xáo trộn được cho là cũng là một quine? Nó thậm chí cần phải là một chương trình hợp lệ? Tôi đã thử chạy Python mẫu trên codepad nhưng nó bị lỗi cú pháp.
sữa

@milk Không, nó không cần phải là một chương trình hợp lệ.
Oliver Ni

Câu trả lời:


15

C #, 288 byte

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}((@))((@)){{{>>{{{{{{}}}}}}}}}\\\\\\\;;;(@)((@)()),,;;

Chiến lược của tôi là cho tất cả những cái ngắn bị bẻ khóa và không ai bận tâm đến việc này xem xét nó dài bao nhiêu ... Ngoài ra tôi cho rằng tôi nên lưu ý rằng đây là một chương trình đầy đủ, không chỉ là một chức năng.


10

JavaScript, 1574 byte, An toàn!

Tôi đã dành quá nhiều thời gian cho việc này. Kìa các obfuscation.

(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

Đây là nguồn gốc!

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))


avocadslàm tôi khó chịu
Kritixi Lithos


5

Tải xuống , 20 byte, Cracked!

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

Tôi đã xáo trộn điều này thông qua việc ngẫu nhiên hóa thứ tự của các nhân vật, bởi vì cái gì có thể được xáo trộn nhiều hơn là ngẫu nhiên?

Trình thông dịch Underload được viết chính xác gặp sự cố khi thấy một dòng mới ở cấp cao nhất của chương trình. Như thường lệ trong các cuộc thi golf, không có dòng mới nào vào cuối chương trình; Tôi chỉ đặt lời nhắc này ở đây vì rất dễ thêm nhầm khi sao chép chương trình vào trình thông dịch.


Chào mừng đến với PPCG! :)
Martin Ender

2
Chà, tôi đã bình luận gián tiếp về PPCG trong một thời gian bằng cách theo dõi người dùng PPCG trên các diễn đàn khác (Reddit, IRC, v.v.) và hét vào mặt họ cho đến khi họ đăng những gì tôi muốn. Cũng có thể làm điều đó trực tiếp :-)

Nứt. Cảm ơn, đây là một thử thách thú vị. :)
Martin Ender

5

Võng mạc , 20 byte, bị nứt

S`(\?)\1*

S`(\?)\1*

Chương trình (và đầu ra) chứa chính xác hai nguồn cấp dữ liệu.

Bạn có thể thử Retina trực tuyến tại đây.

Một gợi ý nhỏ:

Trong quá trình thiết kế cảnh sát này, tôi đã tìm thấy một câu hỏi ngắn nhất về Retina, mà tôi sẽ đăng lên thử thách về câu hỏi của chúng tôi một khi câu trả lời này bị bẻ khóa hoặc an toàn.


Tôi sẽ đoán rằng có một hoạt động khô khan *ở đó và \là một tùy chọn cấu hình để ngăn chặn một nguồn cấp dữ liệu bổ sung.
mbomb007

5

CJam, 39 byte, An toàn

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

Dung dịch:

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

Sử dụng một số mã hóa cơ sở cho obfuscation. Tuy nhiên, vì tất cả các nhân vật đều có trong ASCII, tôi đã nghĩ ai đó có thể tìm ra 32fm95b??b??f+:ccái nào đủ để vũ trang những người còn lại.


Tôi không biết cách chọn hoán vị nếu tôi trả lời. Sắp xếp là một ý tưởng hay
Luis Mendo

4

Pyth, 38 byte, An toàn

Không hoàn toàn chơi golf, nhưng hoạt động.

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

Phiên bản chưa được sắp xếp:

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

1
Tôi có một câu đố nhưng nó thiếu hai @và một 2... Nó rất gần!
Steven H.

Nhanh chóng ! Bạn không có nhiều thời gian!
FliiFe

Tôi nghĩ rằng nó đã kết thúc. Tôi không thể hiểu được ... :( Chúc mừng bạn đã có được giải pháp an toàn!
Steven H.

Có bạn có giải pháp! Vì tò mò, quine bạn tìm thấy là gì?
FliiFe

Tôi đã có K"K2:K@Kg`Z`Z++NKN":K@Kg`Z`Z++NKN.
Steven H.

3

Vim, 22 byte, Cracked!

pit^[^[p00tqqqq^V"ltxltx"

Các ^[là chìa khóa thoát theo nghĩa đen, và ^VCtrl-V, và do đó được tính là một byte, và được lưu giữ cùng trong mã scrambled.




3

JavaScript, 147 byte, đã bẻ khóa bởi ETHProductions

Tôi sẽ rất ấn tượng nếu ai đó xoay sở để phá vỡ điều này ...

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

Giải pháp dự định:

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 Yeah, không có lcho alerthay console.log, không mcho confirmhoặc prompt... Vâng tôi ác>: D Tôi có nên giải thưởng một món tiền thưởng cho các cracker?
jrich

Chà, có chức năng này trả về thay vì cảnh báo (và tôi khá chắc chắn rằng phiên bản của OP hoạt động như vậy) và tôi có thể dễ dàng làm điều tương tự với giải pháp của bạn ... nhưng điều đó có hợp pháp không?
Sản xuất ETH

@ETHsản phẩm sẽ hoàn toàn phá hỏng nó :( Tôi sẽ nói không, nhưng nếu ý kiến ​​phổ biến ra lệnh khác thì tôi đoán rằng sẽ phá vỡ hầu hết các thách thức của JS
jrich

Vâng, tôi không thích các khoản hoàn trả, nhưng tôi chắc chắn 99% không có cách nào khác để phá vỡ giải pháp cụ thể đó. Tôi sẽ cố gắng để có được một vết nứt hợp lệ cho bạn mặc dù :)
ETHproductions

@ETHproductions Tôi có thể đã biến nó thành một liiiiiiitle quá khó trong nhận thức muộn, nhưng chúc may mắn!
jrich

3

Haskell, 86 byte, bị bẻ khóa bởi nimi

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

Đây là biểu thức Haskell hợp lệ in ra:

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

Vì vậy, nếu Ric học, anh ấy có thể đến bữa tiệc xiếc kẹo ngon! Đó là, nếu anh ta tìm ra Syrirrr ở đâu .



3

V , 20 byte - An toàn!

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

Lưu ý các dòng mới.

Tôi không thực sự chắc chắn làm thế nào để xáo trộn chúng, vì vậy tôi chỉ sắp xếp các ký tự theo giá trị ASCII.

Không giống như hầu hết các câu trả lời V, câu trả lời này chứa các ký tự không thể in được. Đây là một hexdump:

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

Mã được xắp xếp lại:

éññ3äl0éé $ áx3 | "qpñx

Hãy thử trực tuyến!

Bên không về liên kết này. Trong các phiên bản trước của V, một dòng mới luôn được in tự động, đó là lý do tại sao phiên bản này có dòng mới. Trình thông dịch tại thời điểm tôi viết đây là một câu hỏi hợp lệ, mặc dù bây giờ bạn có thể xóa dòng mới để làm cho nó hợp lệ.

Giải trình:

éñ                      " 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 byte, An toàn

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

Một quine Haskell khác, lần này với 99 byte lẻ đẹp.

g% w = (g <$> w) ++ w ++ thuần (g.last $ w); main = putStr $ pre% "h & x>) h =%? x * ,, x ,, qvsf) h / mbtu% x * qvuTus% qsfe & # "
Hãy thử nó trên Ideone. Các khoảng trắng trong "g <$> w" phải được xóa, tôi đặt chúng ở đó vì nếu không thì <, $ và> biến mất (rất có thể được hiểu là thẻ html). Chuỗi vô nghĩa là một chuỗi của chương trình với mỗi char được ánh xạ tới thành công của nó, bao gồm một chuỗi cuối cùng "(có thể đưa vào chuỗi mà không thoát vì được ánh xạ tới #). Hàm trợ giúp %lấy chuỗi và ánh xạ từng char đến tiền thân của nó bằng cách sử dụng pred(năng suất code"), sau đó nối thêm chuỗi gốc (năng suất code"gibberish_code) và char cuối cùng của chuỗi được giải mã (năng suất code"gibberish_code"). Để chuyển đổi một char cthành một chuỗi, thông thường sẽ đủ để đưa nó vào một danh sách[c] vì các chuỗi trong Haskell chỉ đơn giản là các danh sách char, tuy nhiên là sự kế thừa của[\, sẽ cần thoát trong chuỗi được mã hóa kế tiếp, vì vậy thay vào đó puređược sử dụng để nâng các loại tùy ý thành Monad (mà Monad sử dụng được suy ra từ ngữ cảnh).


Gần đến rồi. Tôi có một bổ sung space!, nhưng không biết làm thế nào để thoát khỏi nó. Ý tưởng hay, có +1.
nimi

@nimi Tahnks, tôi tò mò cách tiếp cận của bạn đã làm khác đi.
Laikoni

Tôi đã có g%w=g w++w++pure(last.g$w);main=putStr$(pred<$>)%"...#". Vì vậy, về cơ bản tôi đã thất bại trong việc di chuyển <$>vào chức năng %. Bây giờ tôi thấy giải pháp của bạn rõ ràng.
nimi


1

Javascript ES6, 49 byte (đã bẻ khóa)

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

Có tệ không nếu tôi tập trung nhiều hơn vào việc hình thành các từ mạch lạc trong giải pháp tranh giành?

Trong mọi trường hợp, đây là thử thách Cops and Robbers đầu tiên của tôi.

Cập nhật : xem bình luận cho mã bị bẻ khóa.



1

FurryScript, 199 byte, An toàn!

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

Nên khá dễ nứt.

Mã được xắp xếp lại

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!#

Chỉ là quine thông thường, nhưng với hai chương trình con và một số mã khác để trao đổi các chuỗi.


1

Vim, 17 byte

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

Các <CR>là Enter ( ^Mhoặc ^J) trong đầu vào và thêm xuống dòng ở đầu ra. Nó không phải là kết thúc ngầm định của tập tin mới (xem :help 'eol'). 17 byte là những gì được thêm vào một bộ đệm trống. (Dòng mới trong trình soạn thảo văn bản là lạ; hãy cho tôi biết nếu điều này không rõ ràng.)



0

Befunge-93, 15 byte, đã bị bẻ khóa!

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

Hãy thử trực tuyến!


Nứt. Có một chút nghi vấn mặc dù liệu một quine chỉ dựa trên gsố lượng như một quine thích hợp .
Martin Ender

Tôi biết rằng đây là một kỹ thuật khai thác tiêu chuẩn cho Befunge, nhưng theo như các quy tắc của cộng đồng này, bài đăng meta được liên kết là hướng dẫn được chấp nhận cho những gì được coi là một câu hỏi.
Martin Ender

0

Python 2, 105 byte, Cracked!

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

Một cái khác đã bị nứt, vì vậy cái này khó hơn.

in 'Để tìm giải pháp, hãy làm việc!'



@ Sp3000 Oh gosh yeah, nhưng tôi thực sự đã có một quine ban đầu làm một cái gì đó nhiều hơn thế. Dù sao, bạn đã làm điều đó một cách lười biếng: P
Erik the Outgolfer


0

QB64 , 89 byte

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

Một số điểm nổi bật:

  • Mã sẽ không hoạt động trong QBasic: nó sử dụng các tính năng dành riêng cho QB64
  • Mở rộng cú pháp tắt
  • Không có ký hiệu đô la và chỉ có một dấu ngoặc kép
  • "Thơ" sẽ là một đoạn, nhưng nó có vần


0

DẦU , 77 byte, An toàn

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

Chúc may mắn với điều đó.

Giải pháp, "đã nhận xét" (xóa nhận xét trước khi chạy hoặc nó sẽ không hoạt động):

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

Vì vậy, để tóm tắt, nó hoạt động bằng cách in hai số 0 đầu tiên, sau đó so sánh mọi dòng bắt đầu với số thứ ba bằng 0 và nếu không bằng 0, in nó, sẽ thoát ra (vì OIL đọc số 0 từ bất kỳ khoảng trống / không tồn tại nào tế bào). Bất kỳ dòng biến nào cũng chứa giá trị mà chúng có khi chúng được in (vì tôi lười biếng, tôi đã có được giá trị này bằng cách trước tiên tạo một số gần đúng trong đó các ô đó có một số giá trị khác không tùy ý và sử dụng kết quả, đó là một giá trị) .


-2

Thạch , 3 byte, Cracked!

Ṙ”Ṙ

Hãy thử trực tuyến!

Đây là giải pháp:

Cái gì, bạn muốn giải pháp? Tìm nó!



@MartinEnder Tất nhiên !! Mặc dù vậy, tôi đã không ngoại trừ việc này kéo dài trong 1 phút. Và tôi mong Dennis sẽ làm điều đó trước, nhưng đừng bận tâm.
Erik the Outgolfer

Để downvoters: Đây chỉ được đăng.
Erik the Outgolfer
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.