To część wyzwania gliniarzy i rabusiów . Idź tutaj po część rabusiów.
Wyzwanie gliniarzy
Powinieneś napisać program lub funkcję w wybranym języku, który wypisze ciąg znaków Haystack
. Jednak musi być możliwe usunięcie niektórych podzbiorów znaków z programu (bez zmiany kolejności pozostałych), tak aby wynikowy łańcuch był również poprawnym programem w tym samym języku, który Needle
zamiast tego drukuje . Oba programy / funkcje mogą opcjonalnie wydrukować pojedynczy znak nowej linii (niezależnie od siebie), ale nic więcej. W danych wyjściowych rozróżniana jest wielkość liter i musi być zgodna z dostarczoną dokładną obudową.
Twoim celem jest oczywiście bardzo dobre ukrycie „igły”. Pamiętaj jednak, że zgłoszenie może zostać złamane za pomocą dowolnego ważnego rozwiązania, nie tylko tego, które zamierzałeś.
Podaj w swojej odpowiedzi:
- Język (i wersja, jeśli dotyczy) Twojego zgłoszenia.
- Rozmiar programu Haystack w bajtach.
- Sam program Haystack.
- Metoda wyjściowa, jeśli nie jest to STDOUT.
- Jeśli to możliwe, link do tłumacza / kompilatora online dla wybranego języka.
Twoje zgłoszenie może być programem lub funkcją, ale nie fragmentem kodu i nie możesz zakładać środowiska REPL. Nie możesz przyjmować żadnych danych wejściowych i możesz generować dane wyjściowe za pomocą STDOUT, wartości zwracanej przez funkcję lub parametru funkcji (wyjściowej).
Oba programy / funkcje muszą zakończyć się w ciągu 5 sekund na rozsądnym komputerze stacjonarnym i muszą być deterministyczne. Nie wolno używać wbudowanych funkcji do mieszania, szyfrowania lub generowania liczb losowych (nawet jeśli generator liczb losowych zostanie ustawiony na stałą wartość).
W trosce o sprawiedliwość musi istnieć darmowy tłumacz lub kompilator dla wybranego przez ciebie języka.
Odpowiedź zostanie złamana, jeśli program Needle zostanie znaleziony. Jeśli twoja odpowiedź nie została złamana przez 7 dni, możesz ujawnić zamierzony program Needle w swojej odpowiedzi, co sprawia, że przesyłanie jest bezpieczne. Dopóki nie ujawnisz swojego rozwiązania, może ono zostać złamane przez rabusiów, nawet jeśli minęło już 7 dni. Najkrótszy bezpieczny program Haystack (mierzony w bajtach) wygrywa.
Przykłady
Oto kilka prostych przykładów w różnych językach:
Ruby
Haystack: puts 1>0?"Haystack":"Needle"
Delete: XXXXXXXXXXXXXXX
Needle: puts "Needle"
Python 2
Haystack: print "kcatsyaHeldeeN"[-7::-1]
Delete: XXXXXXXX XX
Needle: print "eldeeN"[::-1]
Zauważ, że podzbiór usuniętych znaków nie musi być ciągły.
Nieprzetworzone zgłoszenia
<script>site = 'meta.codegolf'; postID = 5686; isAnswer = false; QUESTION_ID = 144600;</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>
źródło
Odpowiedzi:
Stóg siana , 84 bajty, pęknięty
Wypróbuj online!
Wygląda to (dla mnie) dość skomplikowane, ale jeśli znajdziesz odpowiedni podzbiór, jest to trochę zbyt łatwe ... no cóż, po prostu na początek: P
źródło
Sześciokąt , 37 bajtów
Wypróbuj online!
Właśnie mój obowiązkowy wpis w Heksagonię ...
Dla wygody oto rozwinięty kod:
Jak to działa:
Program zaczyna się od
H
, następnie przechodzimy do IP # 5. To IP zaczyna się w zachodnim rogu, podskakuje i owija się podczas wykonywania (w efekcie);a;y;s;
(więc wydrukowaliśmyHays
). Następnies
zwiększa się dot
o)
i drukuje, a następnie przechodzimy przez nie,Ne...(c
zanim się do niego dostaniemya;c;
(wciąż podskakując wokół małej części sześciokąta). Program uderza_
, odzwierciedla się poprzez\
dol
którego zostanie zmniejszona dok
przez(
, które przechodzi przez inny\
przed drukowaniem i kończy program na@
.Pełna wersja
Pokaż fragment kodu
źródło
Brain-Flak , 146 bajtów ( pęknięty )
Wypróbuj online!
Zamierzone rozwiązanie, 80 bajtów
źródło
JavaScript, 95 bajtów (ES6), pęknięty
Funkcja zwracająca ciąg znaków.
Demo „Stogu siana”
Pokaż fragment kodu
źródło
Haskell , 168 bajtów ( Cracked by nimi )
Wypróbuj online! Ocenianie identyfikator
h
Zwraca napis"Haystack"
po pewnym delecjih
plonów"Needle"
.źródło
Galaretka , 41 bajtów ( pęknięty )
Wypróbuj online!
Udanych łowów!
źródło
Sześciokąt , 32 bajty. Pęknięty
Nie mogłem rozwiązać Martina , więc zamieszczam własne.
Wypróbuj online!
Tutaj jest sformatowany:
Moim celem było, aby oba rozwiązania wykorzystywały jak najwięcej adresów IP, dostałem 6 za Needle i tylko 5 za Haystack .
źródło
Pyth , 44 bytes ( Cracked )
Wypróbuj tutaj.
źródło
Java (OpenJDK 8) ,
226217 bajtów ( pęknięty )Pierwszy w historii golf golfowy, prawdopodobnie bardzo łatwy, ale było to zabawne wyzwanie!
Wypróbuj online!
źródło
return new Main().d();
, abySystem.out.print(new Main().d());
w głównym sposobem.dc , 148 bajtów ( pęknięty )
Wypróbuj online!
Jest to raczej proste, ale mam nadzieję, że rozwiązanie będzie przynajmniej zabawne: з
źródło
JavaScript, 119 bajtów (ES6), pęknięty
Funkcja zwracająca ciąg znaków. Dość długi i nie taki trudny, ale mam nadzieję, że zabawa.
Demo „Stogu siana”
Pokaż fragment kodu
źródło
Python 2.7.2, 103/117 bajtów, pęknięty
Wersja funkcji (117 bajtów):
Wersja programu (103 bajty):
To powinno
Haystack
dobrze wydrukować . Testowane na Python Fiddle .Przy okazji jest to pierwsza próba.
Nie jestem pewien, czy wersja programu jest liczona jako fragment, więc umieściłem tutaj obie wersje.
źródło
Python 2.7.10 z Numpy 1.12.1,
208209 bajtów ( pęknięty )Wygląda na to, że w Numpy jest Igła i Stóg Siana! Oto stóg siana; sprawdź, czy możesz znaleźć Igłę. Mam nadzieję, że szukanie Igły sprawia tyle samo radości, co ja.
Wyprowadza zgodnie ze specyfikacją:
Można repl.it .
źródło
Java 8, 321 bajtów, pęknięty
Wypróbuj tutaj.
Bardziej czytelny:
Nie jestem pewien, czy jest za długi / trudny. Z drugiej strony Java jest na początek dość długa, więc prawidłowe ukrycie „Igły” oczywiście znacznie zwiększa liczbę bajtów ..
Jeśli nikt jej nie złamie, ja ” Później dodam kilka porad spoiler.
źródło
Rubinowy , 185 bajtów, cracked przez cab404
Wypróbuj online!
Spróbuję wymyślić coś podstępnego, ale na razie oto „prosty, ale wstrętny”.
źródło
Brain-Flak , 188 bajtów ( pęknięty )
I dopiero zobaczyłem Funky Komputer Człowieka odpowiedź Jak pisał ten.
To jest trochę zaciemnione.
Wypróbuj online!
Zamierzone rozwiązanie, 96 bajtów:
Wypróbuj online!
źródło
T-SQL, 757 znaków PĘKNIĘTY
Przepraszam za usunięcie mojej poprzedniej odpowiedzi - edytowałem ją zbyt wiele razy, gdy zaciemniłem i nie chciałem nic zdradzać. :)
W każdym razie, kasował w SQL jest nieco trudne, chyba że chcesz robić szalone rzeczy, jak to , i nie było to, że zainwestował.
Ponadto bez wahania nie przepraszam za nazwanie moich zmiennych po Docie.
SQL Fiddle
Jeśli jest to najłatwiejsza odpowiedź w tym wątku, prawdopodobnie masz rację. : P Trudno oszukać SQL.
źródło
Ly , 40 bajtów, pęknięty
Wypróbuj online!
O, chłopcze, kolejne zgłoszenie Ly CNR. Te historycznie nie działały zbyt dobrze (prawdopodobnie ze względu na mnie, a nie język),
ale zobaczymy, jak się to potoczyi dziś nie jest wyjątkiem.Rozwiązanie:
źródło
Java , 345 bajtów, pęknięty
Wypróbuj online!
Naprawdę długie i prawdopodobnie łatwe do złamania, ale przynajmniej ma
Stack<Hay>
!źródło
TI-BASIC, 119 bajtów (bezpieczny)
Dane wyjściowe przechowywane w
Ans
.Rozwiązanie
Usuń postacie z,
Str1
aby uzyskać długość 1.źródło
PHP, 44 bajty, Pęknięty
dość łatwe do złamania; ale to lubię.
Uruchom
-nr
lub wypróbuj online .źródło
Aceto , 154 bajtów (bezpieczny)
Wypróbuj online!
źródło