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>


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.


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


avocadsretak saya!
Kritixi Lithos


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.


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.


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.


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

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.




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

@ 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.



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

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


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


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.



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.


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




0

Python 2, 105 byte, Retak!

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

Yang lain retak, jadi yang ini lebih sulit.

cetak 'Untuk menemukan solusinya, mulai bekerja!'



@ Sp3000 Oh ya ampun, tapi aku sebenarnya punya quine asli melakukan sesuatu lebih dari itu.
Ngomong-ngomong


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


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


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.