Quine Anagram! (Utas Polisi)

22

Ini adalah utas polisi. Untuk utas perampok, klik di sini .

Tugas Polisi

  • Pertama, tuliskan quine dalam bahasa pilihan Anda.
  • Selanjutnya, aduk quine. Pastikan untuk melakukan ini dengan baik karena perampok akan mencoba menguraikannya dan menemukan kode sumber asli! Perhatikan bahwa kode acak tidak perlu berfungsi.
  • Posting jawaban di utas ini. Sertakan bahasa, jumlah byte, dan kode acak.

Program Anda tidak boleh mencetak ke STDERR.

Berikut adalah contoh pengajuan polisi:

Python, 29 byte

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

Tugas Perampok

Untuk utas perampok, klik di sini .

Pengajuan yang Aman

Jika kiriman Anda belum dipecahkan setelah seminggu diposkan, Anda dapat menambahkan solusinya dan menentukan bahwa itu aman. Jika tidak, kiriman Anda mungkin masih retak.

Mencetak gol

Ini adalah , sehingga pengguna dengan pengiriman aman dengan byte paling sedikit akan menjadi pemenang bagian ini.

Papan peringkat

Berikut ini cuplikan tumpukan untuk menghasilkan papan pembelajaran untuk tantangan ini. Agar dapat ditampilkan dengan benar, harap format kiriman Anda seperti ini:

# Language Name, N bytes

... other stuff ...

Jika kiriman Anda retak, harap format seperti ini:

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

... other stuff ...

Jika kiriman Anda aman, format seperti ini:

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

Oliver Ni
sumber
7
Erat terkait. (Tantangan yang sama kecuali bahwa jawaban tidak harus quines.)
Martin Ender
1
Apakah kode yang diacak juga menjadi quine? Apakah ini perlu menjadi program yang valid? Saya mencoba menjalankan sampel Python pada codepad tetapi mendapat kesalahan sintaksis.
susu
@milk Tidak, tidak perlu program yang valid.
Oliver Ni

Jawaban:

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

Strategi saya adalah untuk semua yang pendek untuk mendapatkan retak dan tidak ada yang peduli dengan ini mengingat berapa lama ... Juga saya kira saya harus mencatat bahwa ini adalah program lengkap, bukan hanya fungsi.

susu
sumber
10

JavaScript, 1574 byte, Aman!

Saya menghabiskan terlalu banyak waktu untuk ini. Lihatlah kebingungan.

(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

Inilah sumber aslinya!

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

Conor O'Brien
sumber
avocadsretak saya!
Kritixi Lithos
9

MATL , 20 byte. Retak

It'D-whoLl&w#ck'f0Gz

Jangan mencoba memecahkan ini. Sepenuhnya kabut wack.

Luis Mendo
sumber
Cracked
James Holderness
5

Underload , 20 byte, Retak!

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

Saya mengacak ini melalui pengacakan urutan karakter, karena apa yang bisa lebih acak daripada acak?

Juru bahasa Underload yang ditulis dengan benar terhenti ketika melihat baris baru di tingkat atas program. Seperti biasa dalam kompetisi golf, tidak ada baris baru di akhir program; Saya hanya menempatkan pengingat ini di sini karena sangat mudah untuk menambahkannya secara tidak sengaja saat menyalin program ke penerjemah.

Komunitas
sumber
Selamat datang di PPCG! :)
Martin Ender
2
Yah, saya telah berkomentar secara tidak langsung pada PPCG untuk sementara waktu dengan melacak pengguna PPCG di forum lain (Reddit, IRC, dll.) Dan meneriaki mereka sampai mereka memposting apa yang saya inginkan. Semoga juga melakukannya secara langsung :-)
Retak. Terima kasih, ini adalah tantangan yang menyenangkan. :)
Martin Ender
5

Retina , 20 byte, Retak

S`(\?)\1*

S`(\?)\1*

Program (dan output) berisi persis dua umpan baris.

Anda dapat mencoba Retina online di sini.

Petunjuk kecil:

Dalam proses mendesain polisi ini, saya menemukan Quina terpendek baru, yang akan saya posting ke tantangan quine kami setelah jawaban ini baik retak atau aman.

Martin Ender
sumber
Saya akan menebak bahwa ada run kering *di sana, dan \sebagai opsi konfigurasi untuk mencegah linefeed tambahan.
mbomb007
5

CJam, 39 byte, Aman

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

Larutan:

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

Menggunakan beberapa pengkodean dasar untuk kebingungan. Namun, karena semua karakter dalam ASCII saya akan berpikir seseorang mungkin bisa mencari tahu 32fm95b??b??f+:cyang akan cukup untuk memaksa sisanya.

Martin Ender
sumber
Saya tidak tahu bagaimana memilih permutasi jika saya menjawab. Penyortiran adalah ide yang bagus
Luis Mendo
4

Pyth, 38 byte, Aman

Tidak cukup golf, tetapi berhasil.

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

Versi tidak disortir:

K"K++@KZ:`K@`NZNgK2"++@KZ:`K@`NZNgK2
FliiFe
sumber
1
Saya punya quine tetapi hilang dua @dan satu 2... Sangat dekat!
Steven H.
Cepat ! Anda tidak punya banyak waktu!
FliiFe
Saya pikir ini sudah berakhir. Saya tidak bisa mengetahuinya ... :( Selamat mendapatkan solusi yang aman!
Steven H.
Di sana Anda punya solusinya! Karena penasaran, apa quine yang Anda temukan?
FliiFe
Saya punya K"K2:K@Kg`Z`Z++NKN":K@Kg`Z`Z++NKN.
Steven H.
3

Vim, 22 byte, Retak!

pit^[^[p00tqqqq^V"ltxltx"

The ^[adalah kunci melarikan diri literal, dan ^Vini Ctrl-V, dan karena itu dihitung sebagai satu byte, dan disimpan bersama-sama dalam kode-arik telur.

Loovjo
sumber
1
Retak!
DJMcMayhem
3

Python 2, 54 byte, Retak!

=l`;lrt,]l n`p,i=,' 1,1'lnt[ll[;,0  ]['r[`][`0'ipll] ]
Loovjo
sumber
Cracked
FliiFe
3

JavaScript, 147 byte, Retak karena Produk ETH

Saya akan sangat terkesan jika seseorang berhasil memecahkan ini ...

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

Solusi yang dimaksudkan:

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])`
Jrich
sumber
@ ETHproductions Ya, tidak ada luntuk alertatau console.log, tidak muntuk confirmatau prompt... Ya saya jahat>: D Haruskah saya memberikan hadiah kepada cracker?
Jrich
Ya, ada fungsi ini yang mengembalikan daripada mengingatkan (dan saya cukup yakin versi OP berfungsi seperti itu), dan saya dapat dengan mudah melakukan hal yang sama untuk solusi Anda ... tetapi apakah itu legal?
ETHproduk
@ ETHproductions yang benar-benar akan merusaknya :( Saya akan mengatakan tidak, tetapi jika opini populer menentukan sebaliknya, saya kira itu akan memecah sebagian besar tantangan JS
jrich
Ya, saya tidak suka pengembalian-quines, tapi saya 99% yakin tidak ada cara lain untuk memecahkan solusi khusus itu. Saya akan mencoba untuk mendapatkan celah yang valid untuk Anda :)
ETHproduk
@ ETHproductions Saya mungkin telah membuatnya menjadi liiiiiiitle terlalu sulit di belakang, tapi semoga berhasil!
jrich
3

Haskell, 86 byte, dipecahkan oleh nimi

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

Ini ekspresi Haskell yang valid yang mencetak:

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

Jadi jika Ric belajar, dia bisa pergi ke pesta sirkus permen yummy! Itu kalau dia tahu di mana Syrirrr berada.

Laikoni
sumber
1
Dugaan saya
nimi
3

V , 20 byte - Aman!

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

Perhatikan baris baru yang tertinggal.

Saya tidak begitu yakin bagaimana mengacak mereka, jadi saya hanya mengurutkan karakter berdasarkan nilai ASCII.

Tidak seperti kebanyakan jawaban V, yang ini mengandung nol karakter yang tidak patut dicetak Ini hexdump:

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

Kode tidak teracak:

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

Cobalah online!

Sisi bukan tentang tautan ini. Dalam versi V sebelumnya, baris baru selalu dicetak secara otomatis, itulah sebabnya mengapa versi ini memiliki baris tambahan. Penerjemah pada saat saya menulis ini adalah quine yang valid, meskipun sekarang Anda dapat menghapus baris baru untuk membuatnya valid.

Penjelasan:

éñ                      " 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
DJMcMayhem
sumber
3

Haskell, 99 byte, Aman

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

Quine Haskell lain, kali ini dengan 99 byte aneh yang bagus.

g% w = (g <$> w) ++ w ++ murni (g.last $ w); main = putStr $ pred% "h & x>) h =%? x * ,, x ,, qvsf) h / mbtu% x * qvuTus% qsfe & # "
Cobalah di Ideone. Spasi di "g <$> w" harus dihapus, saya meletakkannya di sana karena jika tidak <, $, dan> lenyap (kemungkinan besar ditafsirkan sebagai tag html). String omong kosong adalah string dari program dengan masing-masing karakter dipetakan ke penggantinya, termasuk final "(yang mungkin untuk dimasukkan ke dalam string tanpa melarikan diri karena dipetakan ke #). Fungsi helper %mengambil string dan memetakan masing-masing char ke pendahulunya menggunakan pred(menghasilkan code"), kemudian menambahkan string asli (menghasilkan code"gibberish_code) dan karakter terakhir dari string yang didekodekan (menghasilkan code"gibberish_code"). Untuk mengkonversi char cke string biasanya cukup untuk memasukkannya ke dalam daftar [c]sebagai string di Haskell hanya daftar char, namun penerus dari[adalah \, yang perlu melarikan diri dalam string yang dikodekan penerus, jadi alih pure- alih digunakan yang mengangkat tipe sewenang-wenang menjadi Monad (yang digunakan Monad disimpulkan dari konteks).

Laikoni
sumber
Hampir sampai. Saya punya tambahan spacedan !, tetapi tidak tahu bagaimana cara menghilangkannya. Ide bagus, dapatkan +1.
nimi
@nimi Tahnks, saya ingin tahu apa pendekatan Anda berbeda.
Laikoni
Saya punya g%w=g w++w++pure(last.g$w);main=putStr$(pred<$>)%"...#". Jadi pada dasarnya saya gagal memindahkan <$>fungsi %. Sekarang saya melihat solusi Anda sudah jelas.
nimi
2

PHP, 110 byte, Retak

php$=))$)<9 php .(().)'heroes ?  $0(9carrot3?$;<.()trash3,.((3=)catarrh$$9 (,'9cry(3);  ;;tryccchhhrrrrxxxxxx
Oliver Ni
sumber
Anda punya carrot!
Kritixi Lithos
1
"... hanya untuk satu hari"
Luis Mendo
Retak.
user59178
1

Javascript ES6, 49 byte (retak)

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

Apakah buruk jika saya lebih fokus pada pembentukan kata-kata yang koheren dalam solusi acak?

Bagaimanapun, ini adalah tantangan Polisi dan Perampok pertamaku.

Perbarui : lihat komentar untuk kode yang retak.

Mama Fun Roll
sumber
2
Retak .
ETHproduk
1

FurryScript, 199 byte, Aman!

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

Harus cukup mudah retak.

Kode tidak terurai

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

Hanya quine biasa, tetapi dengan dua subrutin dan beberapa kode lagi untuk menukar string.

akrolit
sumber
1

Vim, 17 byte

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

The <CR>adalah Enter ( ^Matau ^J) pada input dan menambahkan baris baru pada output. Ini bukan akhir dari file baris baru (lihat :help 'eol'). 17 byte adalah apa yang ditambahkan ke buffer kosong. (Baris baru dalam editor teks aneh; beri tahu saya jika ini tidak jelas.)

udioica
sumber
0

> <> , 36 byte, Retak!

!!!'''***+...00002333:::;???dddforrr
Erik the Outgolfer
sumber
Retak.
Martin Ender
0

Befunge-93, 15 bytes, Retak!

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

Cobalah online!

James Holderness
sumber
Retak. Ini agak dipertanyakan meskipun apakah quine hanya didasarkan pada gjumlah sebagai quine yang tepat .
Martin Ender
Saya sadar bahwa ini adalah teknik quining standar untuk Befunge, tetapi sejauh menyangkut aturan komunitas ini, meta post yang terkait adalah pedoman yang diterima untuk apa yang dianggap sebagai quine.
Martin Ender
0

Python 2, 105 byte, Retak!

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

Yang lain retak, jadi yang ini lebih sulit.

cetak 'Untuk menemukan solusinya, mulai bekerja!'

Erik the Outgolfer
sumber
Retak ?
Sp3000
@ Sp3000 Oh ya ampun, tapi aku sebenarnya punya quine asli melakukan sesuatu lebih dari itu.
Ngomong-ngomong
0

Ruby, 53 byte - Retak

**TEN sTupID,sTupID NET,"TIN"<22"DEN"<<It<DEtINDE\n\n

Itu \n adalah baris baru literal.

dkudriavtsev
sumber
Retak.
Martin Ender
0

QB64 , 89 byte

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

Beberapa poin penting:

  • Kode tidak akan berfungsi di QBasic: ia menggunakan fitur-fitur khusus QB64
  • Ekspansi sintaks tidak aktif
  • Tidak ada tanda dolar dan hanya satu tanda kutip
  • "Puisi" akan menjadi peregangan, tetapi itu sajak
DLosc
sumber
0

Befunge-93, 24 byte

Saya khawatir ini agak terlambat, tetapi saya ingin mencobanya tanpa gperintah.

<<_:@00278899p,**++###>!

Cobalah online!

James Holderness
sumber
0

MINYAK , 77 byte, Aman

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

Semoga beruntung dengan itu.

Solusi, "berkomentar" (hapus komentar sebelum menjalankan atau tidak akan berfungsi):

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

Jadi untuk meringkas, ia bekerja dengan pertama mencetak dua nol, dan kemudian membandingkan setiap baris dimulai dengan yang ketiga dengan nol, dan jika tidak nol, mencetaknya, keluar lain (karena OIL membaca nol dari kosong / tidak ada sel). Setiap baris variabel berisi nilai yang mereka miliki ketika dicetak (karena saya malas, saya memperoleh ini dengan terlebih dahulu membuat quine dekat di mana sel-sel tersebut memiliki beberapa nilai non-nol sewenang-wenang, dan menggunakan hasilnya, yang merupakan quine) .

L3viathan
sumber
-2

Jelly , 3 byte, Retak!

Ṙ”Ṙ

Cobalah online!

Ini solusinya:

Apa, Anda menginginkan solusinya? Temukan!

Erik the Outgolfer
sumber
Cracked ...
Martin Ender
@ MartinEnder Tentu saja !! Saya tidak kecuali ini berlangsung selama 1 menit sama sekali. Dan saya mengharapkan Dennis untuk melakukannya terlebih dahulu, tetapi tidak pernah.
Erik the Outgolfer
Untuk downvoters: Ini hanya harus untuk diposting.
Erik the Outgolfer