Quine Anagrams! (Wątek gliniarzy)

22

To jest wątek gliniarzy. Aby zobaczyć wątek złodziei, kliknij tutaj .

Zadanie gliniarzy

  • Najpierw napisz quinę w wybranym przez siebie języku.
  • Następnie wdrap się na quine. Upewnij się, że robisz to dobrze, ponieważ rabusie będą próbowali go rozszyfrować i znaleźć oryginalny kod źródłowy! Pamiętaj, że kodowany kod nie musi działać.
  • Opublikuj odpowiedź w tym wątku. Dołącz język, liczbę bajtów i kodowany kod.

Twój program może nie drukować do STDERR.

Oto przykład złożenia policjanta:

Python, 29 bajtów

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

Zadanie rabusiów

Aby zobaczyć wątek złodziei, kliknij tutaj .

Bezpieczne zgłoszenia

Jeśli zgłoszenie nie zostało jeszcze złamane po tygodniu od opublikowania, możesz dodać rozwiązanie i określić, że jest bezpieczne. Jeśli tego nie zrobisz, Twoje zgłoszenie może być nadal łamane.

Punktacja

To jest , więc użytkownik z bezpiecznym przesyłaniem z najmniejszą liczbą bajtów zostanie zwycięzcą tej sekcji.

Tabela liderów

Oto fragment stosu do wygenerowania tablicy wyników dla tego wyzwania. Aby wyświetlać się poprawnie, sformatuj swoje zgłoszenie w następujący sposób:

# Language Name, N bytes

... other stuff ...

Jeśli zgłoszenie zostanie złamane, sformatuj go w następujący sposób:

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

... other stuff ...

Jeśli przesłanie jest bezpieczne, sformatuj go w następujący sposób:

# 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
źródło
7
Blisko związane. (To samo wyzwanie, z tym wyjątkiem, że odpowiedzi nie musiały być quinesami.)
Martin Ender,
1
Czy kodowany kod ma być również quine? Czy to w ogóle musi być prawidłowym programem? Próbowałem uruchomić przykładowy Python na codepad, ale pojawia się błąd składniowy.
mleko
@ mleko Nie, to nie musi być prawidłowy program.
Oliver Ni

Odpowiedzi:

15

C #, 288 bajtów

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

Moja strategia polega na tym, aby wszystkie krótkie zostały złamane i nikt nie przejmuje się tym, biorąc pod uwagę, jak długo to trwa ... Przypuszczam, że powinienem zauważyć, że jest to pełny program, a nie tylko funkcja.

mleko
źródło
10

JavaScript, 1574 bajtów, Bezpiecznie!

Spędziłem na tym zdecydowanie za dużo czasu. Zobacz zaciemnienie.

(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

Oto oryginalne źródło!

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
źródło
avocadspsuje mnie!
Kritixi Lithos
5

Niedociążenie , 20 bajtów, pęknięty!

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

Wymieszałem to przez losowe uporządkowanie postaci, ponieważ co może być bardziej zakodowane niż losowe?

Prawidłowo napisany interpreter niedociążenia ulega awarii, gdy widzi nowy wiersz na najwyższym poziomie programu. Jak zwykle w zawodach golfowych, pod koniec programu nie ma nowej linii; Po prostu umieszczam to przypomnienie tutaj, ponieważ bardzo łatwo jest dodać je przez pomyłkę podczas kopiowania programu do tłumacza.

Społeczność
źródło
Witamy w PPCG! :)
Martin Ender
2
Cóż, od jakiegoś czasu komentuję pośrednio PPCG, śledząc użytkowników PPCG na innych forach (Reddit, IRC itp.) I krzycząc na nich, dopóki nie opublikują tego, co chcę.
Pęknięty. Dzięki, to było fajne wyzwanie. :)
Martin Ender
5

Siatkówka , 20 bajtów, pęknięty

S`(\?)\1*

S`(\?)\1*

Program (i wyjście) zawiera dokładnie dwa kanały.

Możesz spróbować Retina online tutaj.

Mała wskazówka:

Podczas projektowania tego gliniarza znalazłem nową, najkrótszą quinę Retina, którą opublikuję w naszym quine quizie, gdy ta odpowiedź będzie pęknięta lub bezpieczna.

Martin Ender
źródło
Domyślam się, że jest tam suchobieg *i \jako opcja konfiguracji, aby zapobiec dodatkowemu podawaniu linii.
mbomb007
5

CJam, 39 bajtów, Bezpieczny

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

Rozwiązanie:

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

Używa podstawowego kodowania do zaciemniania. Ponieważ jednak wszystkie postacie znajdują się w ASCII, pomyślałbym, że ktoś może wymyślić, 32fm95b??b??f+:cco wystarczy, by brutalnie zmusić resztę.

Martin Ender
źródło
Gdybym odpowiedział, nie wiedziałem, jak wybrać permutację. Sortowanie to dobry pomysł
Luis Mendo
4

Pyth, 38 bajtów, Bezpieczny

Nie dość golfa, ale działa.

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

Wersja nieposortowana:

K"K++@KZ:`K@`NZNgK2"++@KZ:`K@`NZNgK2
FliiFe
źródło
1
Mam quine, ale brakuje jej dwóch @i jednego 2... Jest tak blisko!
Steven H.,
Szybko! Nie masz dużo czasu!
FliiFe,
Myślę, że to koniec. Nie mogę tego rozgryźć ... :( Gratulacje dla bezpiecznego rozwiązania!
Steven H.,
Masz rozwiązanie! Z ciekawości, co znalazłeś?
FliiFe,
Miałem K"K2:K@Kg`Z`Z++NKN":K@Kg`Z`Z++NKN.
Steven H.,
3

Vim, 22 bajty, pęknięty!

pit^[^[p00tqqqq^V"ltxltx"

^[to dosłowne klawisze zmiany znaczenia, które ^VCtrl-Vi dlatego są liczone jako jeden bajt i są przechowywane razem w zaszyfrowanym kodzie.

Loovjo
źródło
1
Pęknięty!
DJMcMayhem
3

JavaScript, 147 bajtów, Pęknięty przez ETHProductions

Będę pod wielkim wrażeniem, jeśli komuś uda się to złamać ...

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

Zamierzone rozwiązanie:

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
źródło
@ETHproductions Tak, nie ma lna alertlub console.log, nie mza confirmalbo prompt... Tak, jestem zła>: D powinienem przyznać nagród do orzechów?
jrich
Cóż, jest to funkcja, która zwraca zamiast alarmowania (a jestem dość pewny wersja PO pracował tak, aby) i mogłem zrobić to samo do rozwiązania ... ale czy to jest legalne?
ETHprodukcje
@ETHproductions, które całkowicie by to zepsuły :( Powiem nie, ale jeśli popularna opinia mówi inaczej, to chyba łamie większość wyzwań JS
jrich
Tak, nie lubię zwrotów, ale jestem w 99% pewien, że nie ma innego sposobu na złamanie tego konkretnego rozwiązania. Postaram się uzyskać poprawny pęknięcia na twoje though :)
ETHproductions
@ETHproductions Być może sprawiłem, że było to zbyt trudne z perspektywy czasu, ale powodzenia!
jrich
3

Haskell, 86 bajtów, złamany przez nich

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

To prawidłowe wyrażenie Haskell, które wyświetla:

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

Więc jeśli Ric się uczył, może pójść na pyszne cyrkowe przyjęcie! To znaczy, jeśli dowie się, gdzie jest Syrirrr .

Laikoni
źródło
1
zgaduję
nimi
3

V , 20 bajtów - bezpieczny!

„033lpqxx | áäéééñññ

Zwróć uwagę na końcowy znak nowej linii.

Nie byłem do końca pewien, jak je szyfrować, więc posortowałem znaki według wartości ASCII.

W przeciwieństwie do większości odpowiedzi V, ta zawiera zero znaków niedrukowalnych. Oto zrzut heksowy:

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

Kod nieszyfrowany:

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

Wypróbuj online!

Strona nie dotyczy tego linku. W poprzednich wersjach V nowa linia była zawsze drukowana automatycznie, dlatego ta wersja ma końcową linię. Tłumacz w czasie, gdy to pisałem, był poprawnym quine, chociaż teraz możesz po prostu usunąć nowy wiersz, aby był poprawny.

Wyjaśnienie:

éñ                      " 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
źródło
3

Haskell, 99 bajtów, sejf

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

Kolejny quin Haskell, tym razem z ładnym dziwnym 99 bajtami.

g% w = (g <$> w) ++ w ++ pure (g.last $ w); main = putStr $ pred% "h & x>) h =%? x * ,, x ,, qvsf) h / mbtu% x * qvuTus% qsfe & # "
Wypróbuj na Ideone. Spacje w „g <$> w” muszą zostać usunięte, umieszczam je tam, ponieważ w przeciwnym razie znikną <, $ i> (najprawdopodobniej interpretowane jako znacznik html). Bzdurny ciąg jest ciągiem programu z każdym znakiem odwzorowanym na jego następcę, w tym końcowym "(który można dołączyć do ciągu bez ucieczki, ponieważ jest odwzorowany #). Funkcja pomocnicza %pobiera ciąg i mapuje każdy znak do swojego poprzednika za pomocą pred(ustępowanie code"), a następnie dołącza oryginalny ciąg znaków (ustępowanie code"gibberish_code) i ostatni znak dekodowanego ciągu znaków (ustępowanie code"gibberish_code"). Aby przekonwertować znak cna ciąg znaków, zwykle wystarczy umieścić go na liście, [c]ponieważ ciągi znaków w Haskell są po prostu listami znaków, jednak następca[jest \, który wymagałby ucieczki w łańcuchu kodowanym przez następcę, więc zamiast tegopure jest używany, który przenosi dowolne typy do Monady (z której Monada wynika, wynika z kontekstu).

Laikoni
źródło
Prawie na miejscu. Mam dodatkowy spacei !, ale nie wiem, jak się go pozbyć. Fajny pomysł, mieć +1.
nimi
@nimi Tahnks, jestem ciekaw, co twoje podejście zrobiło inaczej.
Laikoni
Miałem g%w=g w++w++pure(last.g$w);main=putStr$(pred<$>)%"...#". Zasadniczo nie udało mi się przenieść funkcji <$>do tej funkcji %. Teraz, gdy widzę twoje rozwiązanie, jest oczywiste.
nimi
2

PHP, 110 bajtów, pęknięty

php$=))$)<9 php .(().)'heroes ?  $0(9carrot3?$;<.()trash3,.((3=)catarrh$$9 (,'9cry(3);  ;;tryccchhhrrrrxxxxxx
Oliver Ni
źródło
Masz carrot!
Kritixi Lithos
1
„... tylko na jeden dzień”
Luis Mendo
Pęknięty.
user59178,
1

JavaScript ES6, 49 bajtów (pęknięty)

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

Czy to źle, gdybym bardziej skoncentrował się na tworzeniu spójnych słów w zaszyfrowanym rozwiązaniu?

W każdym razie jest to moje pierwsze wyzwanie dla gliniarzy i rabusiów.

Aktualizacja : zobacz komentarze dotyczące pękniętego kodu.

Mama Fun Roll
źródło
2
Pęknięty .
ETHprodukcje
1

FurryScript, 199 bajtów, Bezpiecznie!

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

Powinny być dość łatwe do złamania.

Kod nieszyfrowany

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

Tylko zwykły quine, ale z dwoma podprogramami i dodatkowym kodem do zamiany napisów.

acrolith
źródło
1

Vim, 17 bajtów

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

The <CR>To wprowadzić ( ^Mlub ^J) na wejściu i dodano nową linią na wyjściu. To nie jest niejawny koniec nowego wiersza pliku (patrz :help 'eol'). 17 bajtów jest dodawanych do pustego bufora. (Nowe linie w edytorze tekstu są dziwne; daj mi znać, jeśli nie jest to jasne).

udioica
źródło
0

Befunge-93, 15 bajtów, pęknięty!

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

Wypróbuj online!

James Holderness
źródło
Pęknięty. Jest jednak nieco wątpliwe, czy quine oparte wyłącznie na gliczy się jako właściwe quine .
Martin Ender,
Wiem, że jest to standardowa technika quiningu dla Befunge, ale jeśli chodzi o zasady tej społeczności, połączony meta post jest przyjętą wytyczną dla tego, co liczy się jako quine.
Martin Ender,
0

Python 2, 105 bajtów, Cracked!

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

Drugi został pęknięty, więc ten jest trudniejszy.

drukuj „Aby znaleźć rozwiązanie, zabierz się do pracy!”

Erik the Outgolfer
źródło
Pęknięty ?
Sp3000,
@ Sp3000 O rany, tak, ale właściwie miałem oryginalny quine robiąc coś więcej. W każdym razie zrobiłeś to leniwie: P
Erik the Outgolfer
0

Rubin, 53 bajty - pęknięty

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

\nSą literalne znaki nowej linii.

dkudriavtsev
źródło
Pęknięty.
Martin Ender
0

QB64 , 89 bajtów

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

Niektóre istotne punkty:

  • Kod nie będzie działał w QBasic: używa funkcji specyficznych dla QB64
  • Rozszerzenie składni jest wyłączone
  • Brak znaków dolara i tylko jeden znak cudzysłowu
  • „Poezja” byłaby odcinkiem, ale rymuje się
DLosc
źródło
0

Befunge-93, 24 bajty

Obawiam się, że to trochę za późno, ale chciałem spróbować bez gpolecenia.

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

Wypróbuj online!

James Holderness
źródło
0

OLEJ , 77 bajtów, bezpieczny

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

Powodzenia z tym.

Rozwiązanie „skomentowane” (usuń komentarze przed uruchomieniem, inaczej nie będzie działać):

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

Podsumowując, działa najpierw drukując dwa zera, a następnie porównując każdą linię, zaczynając od trzeciej zera, a jeśli nie jest zerem, drukując ją, w innym przypadku wychodząc (ponieważ OIL odczytuje zero z dowolnego pustego / nieistniejącego komórka). Wszelkie zmienne wiersze zawierają wartość, którą mają, kiedy są drukowane (ponieważ jestem leniwy, uzyskałem to, tworząc najpierw prawie quine, w której komórki mają pewną niezerową wartość, i używając wyniku, który jest quine) .

L3viathan
źródło
-2

Galaretka , 3 bajty, popękana!

Ṙ”Ṙ

Wypróbuj online!

Oto rozwiązanie:

Chcesz rozwiązania? Znajdź to!

Erik the Outgolfer
źródło
Pęknięty ...
Martin Ender
@MartinEnder Oczywiście !! Jednak nie trwało to wcale tak długo, jak tylko 1 minuta. Spodziewałem się, że Dennis zrobi to pierwszy, ale nieważne.
Erik the Outgolfer
Do downvoters: To po prostu musiało zostać opublikowane.
Erik the Outgolfer,