Quine Anagrams! (Polislerin İpliği)


22

Bu polislerin ipliği. Soyguncuların ipliği için buraya tıklayın .

Polislerin Görevi

  • İlk önce, seçtiğiniz bir dilde bir dilim yazın.
  • Sonra, sırayı karıştır. Bunu iyi yaptığınızdan emin olun çünkü soyguncular onu çözmeye ve orijinal kaynak kodunu bulmaya çalışın! Şifreli kodun çalışmasına gerek olmadığını unutmayın.
  • Bu konuya bir cevap gönderin. Dili, bayt sayısını ve şifreli kodu ekleyin.

Programınız STDERR'ye yazdırılamayabilir.

İşte bir polis gönderimi örneği:

Python, 29 bayt

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

Soyguncunun Görevi

Soyguncuların ipliği için buraya tıklayın .

Güvenli Gönderimler

Gönderiminiz bir hafta yayınlandıktan sonra henüz kırılmadıysa, çözümü ekleyebilir ve güvenli olduğunu belirtebilirsiniz. Bunu yapmazsanız, gönderiminiz hala çatlamış olabilir.

puanlama

Bu , yani en az bayt ile güvenli gönderimi olan kullanıcı bu bölümün kazananı olacak.

Liderler Sıralaması

İşte bu meydan okuma için bir anket tahtası oluşturmak için bir yığın pasajı. Düzgün bir şekilde görüntülenmesi için lütfen gönderinizi şu şekilde biçimlendirin:

# Language Name, N bytes

... other stuff ...

Gönderiminiz çatlarsa, lütfen şu şekilde biçimlendirin:

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

... other stuff ...

Gönderiminiz güvenli ise, aşağıdaki şekilde formatlayın:

# 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
Yakından alakalı. (Bu cevaplar dışında aynı zorluğun cevaplanması gerekmedi.)
Martin Ender

1
Şifrelenmiş kodun da bir kuyruk olması mı gerekiyor? Geçerli bir program olması gerekiyor mu? Örnek Python'u codepad üzerinde çalıştırmayı denedim, ancak sözdizimi hatası alıyor.
süt

@milk Hayır, geçerli bir program olması gerekmez.
Oliver Ni

Yanıtlar:


15

C #, 288 bayt

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

Stratejim, tüm kısa olanlar için kırılma ve kimsenin ne kadar uzun olduğunu göz önünde bulundurarak rahatsız etmemesi ... Ayrıca, bunun sadece bir işlev değil, tam bir program olduğunu not etmeliyim.


10

JavaScript, 1574 bayt, Güvenli!

Bunun için çok zaman geçirdim. Şaşırtmaya bak.

(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

İşte orijinal kaynak!

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


avocadsbeni mahvetti!
Kritixi Lithos 14:16


5

Düşük yük , 20 bayt, Cracked!

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

Bunu karakterlerin sırasını rastgele ayarlayarak karıştırdım, çünkü rastgele olmaktan daha fazla karıştırılmış ne olabilir?

Programın en üst düzeyinde bir yeni satır görürken, doğru yazılmış bir Underload yorumlayıcısı kilitleniyor. Golf yarışmalarında her zamanki gibi program sonunda yeni bir satır yok; Bu hatırlatıcıyı buraya yerleştiriyorum çünkü programı bir tercümana kopyalarken yanlışlıkla bir tane eklemek çok kolay.


PPCG'ye Hoşgeldiniz! :)
Martin Ender

2
Bir süredir PPCG kullanıcılarını diğer forumlardaki (Reddit, IRC vb.) PPCG kullanıcılarını izleyerek ve istediklerimi yayınlayana kadar onlara bağırarak dolaylı olarak yorum yapıyorum. Yanı :-) doğrudan bunu etsin

Çatlak. Teşekkürler, bu eğlenceli bir mücadele oldu. :)
Martin Ender

5

Retina , 20 bayt, Kırık

S`(\?)\1*

S`(\?)\1*

Program (ve çıktı) tam olarak iki satır besleme içerir.

Online Retina'yı burada deneyebilirsiniz.

Küçük bir ipucu:

Bu polisin tasarlanma sürecinde, bu cevap ya kırılmış ya da güvenli olduğunda, quine mücadelemize göndereceğim yeni bir kısa Retina keki buldum.


Orada kuru bir çalışma olduğunu *ve \ek bir besleme akışını önlemek için bir yapılandırma seçeneği olduğunu tahmin edeceğim .
mbomb007

5

CJam, 39 bayt, Güvenli

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

Çözüm:

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

Şaşırtma için bazı temel kodlamalar kullanır. Ancak, karakterlerin hepsi ASCII'de olduğu için, birisinin 32fm95b??b??f+:cgerisini zorlamak için yeterli olanı anlayabileceğini düşünebilirdim .


Cevap verirsem nasıl permütasyon seçeceğimi bilemedim. Sıralama iyi bir fikir
Luis Mendo

4

Pyth, 38 bayt, Güvenli

Çok golf değil, ama çalışıyor.

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

Sıralanmamış versiyon:

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

1
Bir ayıcım var ama ikisinden @birini özlüyor 2... Çok yakın!
Steven H.

Çabuk ol! Fazla zamanın yok!
FliiFe

Sanırım bitti. Çözemiyorum ... :( Güvenli bir çözüm
Steven H.

İşte çözüm var! Meraktan, bulduğunuz omurga neydi?
FliiFe

Vardı K"K2:K@Kg`Z`Z++NKN":K@Kg`Z`Z++NKN.
Steven H.



3

JavaScript, 147 bayt, Kırık ETHProductions tarafından

Birisi bunu kırmayı başarırsa çok etkileneceğim ...

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

Amaçlanan çözüm:

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

Evet @ETHproductions, hiçbir var liçin alertya console.loghiç miçin confirmya prompt... Evet ben kötü> değilim: D Meli ben ödül kraker bir ödül?
Jrich,

Eh, orada bu fonksiyon döner ziyade uyarı (ve oldukça emin OP'ın versiyonu buna gibi çalıştı ediyorum) o ve ben kolayca çözüme aynı yapabilirdi ... ama bu yasal mı?
ETHProductions

Tamamen mahveder @ETHproductions :( Hayır demek gidiyorum, ama halkın görüşü dikte aksi bunu sonları tahmin eğer en JS zorluklar
jrich

Evet, dönüş kuyruklarını sevmiyorum, ama% 99 eminim ki bu çözümü çözmenin başka yolu yoktur. Senin için geçerli bir çatlak elde etmeye çalışacağım :)
ETHproductions

@ETHproductions Ben onu çok zor, ama iyi şanslar liiiiiiitle yapmış olabilir!
Jrich,

3

Haskell, 86 bayt, nimi tarafından çatlak

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

Bu, yazdırılan geçerli bir Haskell ifadesidir:

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

Öyleyse Ric okuyorsa, nefis şeker sirk partisine gidebilir! Bu, Suriye'nin nerede olduğunu çözerse .



3

V , 20 bayt - Güvenli!

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

Sondaki yeni satırı not alın.

Onları nasıl karıştıracağımdan emin değildim, bu yüzden karakterleri ASCII değerine göre sıraladım.

Çoğu V yanıtından farklı olarak, bu, sıfır yazdırılamaz karakter içeriyor . İşte bir hexdump:

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

Şifrelenmemiş kod:

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

Çevrimiçi deneyin!

Taraf bu bağlantı hakkında değil. V'nin önceki sürümlerinde, her zaman otomatik olarak bir yeni satır yazdırılıyordu, bu yüzden bu sürümün sonunda yeni satır var. Bunu yazdığımdaki tercüman geçerli bir yazıydı, ancak şimdi geçerli yapmak için yeni satırı kaldırabilirsiniz.

Açıklama:

éñ                      " 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 bayt, Güvenli

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

Başka bir Haskell quine, bu sefer güzel bir tuhaf 99 byte ile.

g% w = (g <$> w) ++ w ++ saf (g.last $ w); main = putStr $ pred% "h & x>) h =%? x * ,, x ,, qvsf) h / MBtu% x * qvuTus% qsfe & #"
Ideone'da dene. "G <$> w" içindeki boşluklar kaldırılmalıdır, onları buraya koydum çünkü aksi takdirde <, $ ve> kaybolur (büyük olasılıkla html etiketi olarak yorumlanır). Gibibish dizesi, bir final de dahil olmak üzere "( karakterleri eşlendiği için kaçaya dahil etmek mümkün değildir), her bir karakterin halefi ile eşleştirildiği programın dizesidir #. Yardımcı işlev %, dizeyi alır ve (char) 'ı kullanarak her bir karakteri öncekine eşleştirir pred( code"daha sonra), ardından orijinal diziyi (veren code"gibberish_code) ve kodu çözülmüş dizenin (karakterini veren ) son karakterini ekler code"gibberish_code". Bir karakter cdizesini bir dizgeye dönüştürmek normalde onu [c]Haskell'deki karakter dizileri olarak bir listeye koymak yeterli olacaktır , ancak bunun yerine[ , isteğe bağlı türleri bir Monad'a (Monad) kullanım bağlamdan çıkarılır).\ bunun yerine, halefi olarak kodlanmış dizede kaçan gerekir ki,pure


Neredeyse. Bir ekim var spaceve !ondan nasıl kurtulacağımı bilmiyorum. Güzel fikir, +1’in olması.
nimi

@nimi Tahnks, yaklaşımınızın farklı şekilde ne yaptığını merak ediyorum.
Laikoni

Vardı g%w=g w++w++pure(last.g$w);main=putStr$(pred<$>)%"...#". Bu yüzden temelde <$>işlevi yerine getiremedim %. Şimdi çözümünüzü görüyorum ki bu çok açık.
nimi


1

Javascript ES6, 49 bayt (kırık)

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

Çırpılmış çözümde tutarlı kelimeler oluşturmaya daha fazla odaklanmam kötü mü?

Her durumda, bu benim ilk Polisler ve Soyguncular mücadelem.

Güncelleme : kırık kod için yorumları görün.



1

FurryScript, 199 bayt, Güvenli!

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

Kırılması oldukça kolay olmalı.

Şifrelenmemiş Kod

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

Sadece düzenli quine, ancak iki alt yordam ve dizeleri değiştirmek için bazı kodlar.


1

Vim, 17 bayt

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

<CR>(Enter olduğu ^Mya da ^Jgiriş ve bir de) ilave çıkış yeni satır. Öyle değil dosya satır (bkz örtülü ucu :help 'eol'). 17 bayt, boş bir ara belleğe eklenenler. (Bir metin düzenleyicideki yeni satırlar garip; bu açık değilse bana bildirin.)




0

Python 2, 105 bytes, Cracked!

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

The other one was cracked, so this one is more difficult.

print'To find the solution, get to work!'



@Sp3000 Oh gosh yeah, but I actually had an original quine doing something more than that. Anyways, you did it the lazy way :P
Erik the Outgolfer


0

QB64, 89 bytes

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

Some salient points:

  • The code will not work in QBasic: it uses QB64-specific features
  • Syntax expansion is off
  • No dollar signs and only one quotation mark
  • "Poetry" would be a stretch, but it does rhyme


0

OIL, 77 bytes, Safe

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

Good luck with that.

Solution, "commented" (remove comments before running or it won't work):

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

So to summarize, it works by first printing two zeros, and then comparing every line starting with the third one with zero, and if it isn't zero, printing it, else exiting (since OIL reads zero from any empty/non-existent cell). Any variable lines contain the value they have when they are printed (since I'm lazy, I obtained this by first making a near-quine where those cells have some arbitrary non-zero value, and using the result, which is a quine).


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.