Gratulacje dla Dennisa, który wygrał wyzwanie zarówno gliniarzy, jak i rabusiów! Calvin's Hobbies spełnił już swoją obietnicę i napisał to wyzwanie dla Dennisa za zwycięstwo w wyzwaniu złodziei.
Uwaga: Wyzwanie to zostało zamknięte dla dalszych odpowiedzi policjantów od 01.09.2015 02:00:00 UTC. Wszelkie nowe odpowiedzi opublikowane nie będą się kwalifikować do wygranej i nie będą liczone do wyników rabusiów, jeśli zostaną złamane. Nadal jednak możesz publikować nowe odpowiedzi, aby czerpać radość innym użytkownikom, aby w przyszłości były dostępne łamigłówki. Te nowe odpowiedzi znajdują się w sekcji „Wrażliwi gliniarze” na tablicy wyników, a ich status niekonkurujący jest oznaczony osobno.
Witamy w edycji The Hello World Quiz Cops-and-Robbers ! (Jeśli nigdy nie grałeś w quiz, wypróbuj go przez minutę lub 30. Nie musisz jednak grać w to wyzwanie).
Wyzwanie gliniarzy
- Wybierz język programowania. Dopuszczalne języki muszą mieć albo artykuł angielski Wikipedia , artykuł esolangs lub artykuł Code Rosetta w momencie opublikowania tego wyzwania (zauważ, że związane listy nie muszą być kompletne, ponieważ są one kuratorem ręcznie). Muszą także spełniać nasze standardowe standardy języków programowania , więc nie ma już rzeczy takich jak HQ9 +. Na koniec musi być dostępny bezpłatny (jak w przypadku piwa) tłumacz lub kompilator dla danego języka (w momencie opublikowania tego wyzwania).
Napisz program Hello World. Oznacza to, że napisz pełny program w wybranym języku, który wypisuje
Hello, World!
(dokładnie tak, tj. Ten dokładnie strumień bajtów) i opcjonalnie pojedynczy znak nowej linii do STDOUT lub najbliższej alternatywy.Nie wolno zakładać środowiska REPL, istniejącego kodu szablonu lub niestandardowych flag kompilatora / interpretera. Program musi mieć postać jednego lub więcej plików źródłowych (aby wykluczyć dziwaczne języki, takie jak Foldery ) i musi w pełni pasować do Twojej odpowiedzi (więc nie może być dłuższy niż 30 000 znaków) - nie powinno to stanowić problemu jakiekolwiek poważne przesłanie.
Jeśli twój kod zawiera bajty spoza zakresu drukowalnego ASCII, dołącz pastebin lub zrzut heksadecymalny, aby upewnić się, że twój kod jest rzeczywiście testowalny.
Program musi zakończyć się w ciągu 1 minuty na typowym komputerze stacjonarnym.
Otóż to. Chodzi o to, że chcesz zaciemnić kod, aby nie było oczywiste, który język wybrałeś. Zauważ też, że nie chcesz, aby Twój kod przypadkowo był prawidłowym programem Hello World w jakimkolwiek innym języku, chociaż spodziewam się, że jest to mało prawdopodobne w przypadku wystarczająco zaciemnionych programów.
Nie wolno pod żadnym pozorem edytować kodu źródłowego przesłanego przez ciebie postu (ponieważ może to unieważnić aktywne próby złodziei włamania do Twojej odpowiedzi). Więc upewnij się, że grasz w golfa tak dobrze, jak możesz (lub odważysz się) przed wysłaniem. Jeśli uznasz, że twoja odpowiedź nie działa po opublikowaniu, po prostu usuń odpowiedź i opublikuj poprawioną wersję, jeśli chcesz.
Jeśli nikt nie znajdzie języka, w którym Twój kod jest ważny przez 7 dni, możesz ujawnić wybrany język (najlepiej z wyjaśnieniem zaciemnionego kodu), co zapewni bezpieczną odpowiedź . Pamiętaj, że Twoje zgłoszenie może zostać złamane, dopóki nie ujawnisz języka.
Wygrywa najkrótsze bezpieczne przesłanie (w bajtach).
Formatowanie
(Pomiń tę sekcję i przeczytaj Wyzwanie rabusiów, jeśli nie planujesz teraz brać udziału jako glina.)
Na dole tego wpisu znajduje się fragment kodu, który generuje tabele wyników, a także lista zgłoszeń, które można jeszcze złamać. Aby fragment kodu zadziałał, ważne jest, aby w odpowiedzi podać określony nagłówek:
Nowe odpowiedzi powinny zawierać nagłówek podobny do
# ???, [N] bytes
gdzie
[N]
jest rozmiar twojego kodu w bajtach i???
powinien pojawić się dosłownie.Jeśli odpowiedź nie zostanie złamana przez 7 dni i chcesz zabezpieczyć swoją odpowiedź, ujawniając język, po prostu zastąp
???
np.# Ruby, [N] bytes
Możesz mieć link z nazwą języka do odpowiedniej strony internetowej, takiej jak strona esolangs lub repozytorium GitHub. Link zostanie wyświetlony w tabeli wyników.
Jeśli inny użytkownik pomyślnie złamał zgłoszenie (patrz poniżej), dodaj również język wraz z powiadomieniem
# Ruby, [N] bytes, cracked by [user]
gdzie
[user]
jest nazwa użytkownika, który przesłał pierwszy ważny crack. Jeśli język używany w crackie jest inny niż ten, który zamierzałeś, polecam użyć domysłów rabusiów i wspomnieć w odpowiedzi, że zamierzałeś być czymś innym. Niech nazwa użytkownika będzie linkiem do strony jego profilu.
Wyzwanie rabusiów
- Znajdź wrażliwą odpowiedź. To odpowiedź, która nie została jeszcze złamana i która nie jest jeszcze bezpieczna .
Złam go, rozgryzając jego język. Oznacza to, że znajdź dowolny język, w którym dany program jest prawidłowym programem Hello World (z zastrzeżeniem zasad opisanych w Wyzwaniu gliniarzy powyżej). Nie ma znaczenia, czy to jest język, który zamierzał policjant.
Jeśli znalazłeś taki język, zostaw komentarz z nazwą tego języka. Jeśli to możliwe, należy dołączyć link do tłumacza online, wskazujący, że kod faktycznie działa w tym języku, zgodnie z wymaganiami.
Każdy użytkownik otrzymuje tylko jedną odpowiedź na odpowiedź. Nie wolno ci złamać własnej odpowiedzi (oczywiście ...).
Użytkownik, który ujawnił największą liczbę odpowiedzi, wygrywa wyzwanie rabusiów. Więzy są zerwane przez sumę bajtów spękanych odpowiedzi (im więcej, tym lepiej).
Ponieważ wyzwanie rabusiów odbywa się wyłącznie w komentarzach, nie będzie dla nich żadnej zachęty do reputacji. Jednak Grand Master of Challenge Writing, Calvin's Hobbies , uprzejmie zaoferował napisanie wyzwania o użytkowniku, który wygra wyzwanie rabusiów!
Wyzwanie Dashboard
Poniższy fragment kodu generuje tabele wyników dla gliniarzy i złodziei, a także zawiera listę wszystkich odpowiedzi, które można jeszcze złamać. Daj mi znać, jeśli coś nie działa poprawnie, a ja postaram się to naprawić jak najszybciej. Jeśli możesz pomyśleć o dodatkowych funkcjach, które mogłyby uczynić pulpit bardziej przydatnym, zostaw również komentarz.
źródło
Odpowiedzi:
Obudź , 17 bajtów
Według oficjalnej strony internetowej ,
Wake został stworzony przez shinh i można go przetestować na jego serwerze golfowym Anarchy Golf .
Kod składa się z pojedynczego wiersza zawierającego cel / etykietę i akcję. Ponieważ akcja jest literałem łańcuchowym, jest drukowana do STDOUT.
Użycie
"
do celu służyło dwóm celom:Zapewnia ochronę przed poliglotami.
Drukuj klip i Foo
:
; GolfScript i CJam zgłaszają błąd składniowy z powodu niedokończonego ciągu.Daje to trochę niepewności co do sposobu działania kodu.
źródło
":
jest to prawidłowy prefiks linii i który traktuje literał ciąg sam w rzeczywistej linii jako polecenie wyjściowe. Lub 2: Że jest to podstawianie ciągów i<foo>:<bar>
usuwa<foo>
z<bar>
. Ectoforte, ze strony Forte wiki esolangs, w pewnym sensie spełnia 1, ale połączony tłumacz łamie się z podwójnym cytatem na etykiecie i nie wiem, czy to się liczy jako język.TinyBF , 708 bajtów, złamany przez kirbyfan64sos
To była szalona zabawa. Wszyscy wiedzą, że mogę pisać tylko w jednym języku;)
Wyjaśnienie
Po pierwsze, zajęło to wiele godzin, więc jestem ogromnie zachwycony wszystkimi pozytywnymi reakcjami i próbami złamania go!
Jak zauważono w komentarzach, po skompilowaniu w C kod
Gotcha!
jest wypisywany , a po nim nowy wiersz, ale w przypadku TinyBF drukuje pożądanyHello, World!
. TinyBF jest prostą pochodną Brainf ** k , który zastępuje jego 8 poleceń z zaledwie 4:+ > | =
. Ponieważ wszystkie inne znaki są ignorowane, z radością mógłbym napisać program C z wieloma niepotrzebnymi operatorami, aby spróbować poprowadzić ludzi w złym kierunku (co, ku mojemu zaskoczeniu, działało całkiem dobrze). Oto czysty kod TinyBF:Oto ten sam program napisany w zwykłym BF:
Możesz użyć tego interpretera do konwersji z BF na TinyBF i uruchomienia kodu.
źródło
main()
. Czy to może być C? http://codepad.org/pj9mQgyQ (Uwaga: dane wyjścioweGotcha!
)I,c,o,d,e,C;i;main()
zostałyby zignorowane (oprócz,;
ale nie wydaje się to ważne), a ich duża liczba!
wykorzystywana do wyświetlania znaków ASCII może być znakiem, że tak jest. Nie mogę jednak pobrać tłumacza Fission i sprawdzić już teraz.zło , 658 bajtów, spakowane przez Sp3000
zło to stary esolang trochę podobny do BF. Wszystkie polecenia są małymi literami, a inne znaki są po prostu ignorowane.
Najpierw wygenerowałem krótki program hello world w złym języku, używając Pythona:
Następnie, ponownie używając Pythona, przekształciłem go w ciąg base64:
To dekoduje się na małe litery:
Dodałem kilka innych rzeczy do ciągu base64, a następnie napisałem to jako program Python powyżej.
Shebang jest naprawdę ważny w programie.
s
Zanimb
wsbin
pominieb
polecenie. Następnie znakf
infortran
przejdzie do przodu do następnegom
znaku, który znajduje się w ciągu base64.źródło
aeeeaeee...
są mieszane z losowymi znakami, dzięki czemu powstały ciąg jest prawidłowym ciągiem base64. Wybrałem losowe znaki, tak że wynikowy ciąg będzie dekodowany w formacie base64 na małe litery, ale odkodowany ciąg jest właściwie nieistotny - to tylko odwrócenie uwagi. Liczy się tylko to, że zło wykona ciąg base64, ale zignoruje wielkie litery i kilka małych liter, ponieważ nie są to polecenia, pozostawiając program hello world.Lua,
29202865 Bytes, cracked by jimmy23013Nauczyłem się tego języka wczoraj, więc wybacz mi błędy składniowe.
Ostrzeżenie: wypisuje „Witaj, świecie!” a następnie wychodzi z błędem
Wyjaśnienie:
W języku Lua - [[oznacza komentarz wieloliniowy, - oznacza komentarz jednowierszowy, a [[oznacza ciąg wieloliniowy.
Jeśli przewiniesz do końca pierwszego wiersza, zobaczysz bardzo podejrzane p = [[. To definiuje wieloliniowy ciąg znaków, który zaczyna się od „Romeo, młody człowiek” aż do „Pozwól im]]”, na który większość ludzi spogląda, ale w rzeczywistości kończy ciąg multilinii. Następnie mamy print, który jest funkcją print, a następnie „-” czyni resztę wiersza komentarzem. Musimy zostawić trochę miejsca między drukiem a Hello World, aby go nie zdradzić, dlatego mamy komentarz wieloliniowy: „- [[Romeo szlocha, zniesmaczony swoim życiem] - Jesteś tak ostry jak smród kozy. Mów swoim umysłem! [[Exeunt Romeo]] „The]] na końcu kończy wieloliniowy komentarz, a na linii po nim„ Hello, World! ” a następnie resztę linii komentuje znak -.
źródło
Hello, world!
, nieHello, World!
.TRANSCRIPT , 39 bajtów
Oto ładny i prosty.
Pierwszy bezpieczny policjant! Dziwię się, że ten trwał do końca - starałem się wybrać język, który trudno byłoby odszukać bezpośrednio, ale łatwiej byłoby go złamać, gdybyś mógł odgadnąć ten temat.
TRANSCRIPT to esolang oparty na interaktywnych grach fabularnych. Ma NPC (ciągi) i obiekty (liczby całkowite). Oto
End
nazwa NPC.Pierwszy wiersz deklaruje NPC ze składnią
<name> is here.
. Drugi wiersz następnie przypisuje NPC ciąg"Hello, World!"
, a trzeci wiersz drukuje ciąg za pomocąX / EXAMINE
polecenia. Tutaj nie ma zbyt wiele miejsca na zaciemnianie, więc wszystko, co zrobiłem, to wybranie czegoś, co zwykle nie jest nazwą dla NPC.Aby udowodnić, że TRANSCRIPT jest poprawnym językiem dla tego wyzwania, oto program, który sprawdza, czy wejściowa liczba naturalna jest liczbą pierwszą, czy nie:
Na marginesie, denerwowałem się od czasu, gdy domysł @ aditsu był bardzo blisko. Inform 7 to język do tworzenia interaktywnych gier fabularnych, o których istnieniu nawet nie wiedziałem.
W hołdzie dla próby aditsu spróbowałem z Inform 7:
A oto przykładowy przebieg:
źródło
Zagłówki , 637 bajtów, złamane przez Dennisa
Headsecks to kodowanie do BF za pomocą punktów kodowych modulo 8. Powyższy program, po konwersji, daje
Jest tam wiele bezużytecznych par, takich jak
+-
lub<>
tam, i rozebranie ich dajeMożna zauważyć, że kilka pętle mają
,
(wejście) w nich - te pętle nie są uruchamiane, a jedynie służą do dodawaniae
s do programu, które w przeciwnym razie musiałyby podejrzanie miał tylkoa
S ii
S, jak jej tylko samogłosek.Składnia, backticks, obce
)
itp. Były czerwonymi śledziami.źródło
herrings are red
??? , 344 bajtów, złamany przez jimmy23013
Oto zrzut heksowy pliku:
Zacząłem od programu Piet, który drukuje
Hello, world!
. Sam obraz zawierał kilka ważnych ??? instrukcje (,,,!;
), ale niewystarczające do spowodowania problemów.Następujące ??? program generuje pożądane dane wyjściowe i kończy się instrukcjami podanymi na obrazku:
Aby ukryć go w obrazie, zwiększyłem liczbę kolorów w globalnej palecie z 32 do 64 (tak określa bajt 0x85 w pierwszym wierszu) i zastąpiłem pierwsze 110 bajtów nieużywanych kolorów w palecie pierwszymi 110 bajty ??? program.
Rezultatem jest pierwszy w historii Piet / ??? poliglota.
źródło
w
i znając Dennisa, prawdopodobnie nie byłoby to takie proste: P??? , 1052 bajtów, złamany przez Alexa A.
źródło
Treehugger , 284 bajtów, złamany przez Sp3000
Program będzie działał w co najmniej 4 językach. Jednak tylko jeden z nich daje prawidłowy wynik ...
Wyjaśnienie:
Po usunięciu wszystkich ignorowanych postaci otrzymasz:
Usunięcie niektórych kombinacji znaków no-op powoduje:
Co jest w istocie tłumaczeniem Brainf *** „Hello World!” ale z dodatkowym kodem (
<++++++++++++++++++++++++++++++++++++++++++++.^
), aby dodać przecinek.źródło
HelloHelloHello
in Thue^
był znaczący i z jakiegoś powodu nie został sklasyfikowany jako pochodna BF.Starry , 3039 bajtów, spakowany przez Sp3000
Oto coś na początek.
Po pierwsze, Starry ignoruje wszystko oprócz spacji i
+*.,`'
. Pozbądźmy się więc tych śmieci:Teraz każdy ciąg spacji, po którym następuje spacja, to jedno polecenie. Semantyka polecenia zależy od liczby spacji i użytej spacji. Na początek backtyki tworzą tylko etykiety, do których nigdy nie wskakujemy, więc możemy się ich pozbyć:
W tym momencie jest to prawie dokładnie przykład Hello World na stronie esolangs , tyle że musiałem go zmodyfikować, aby uzyskać wielkie litery
W
.Aby go zaciemnić, najpierw dodałem backticks, ponieważ nie spowodowały żadnych problemów (nie mogłem dodać
,
lub'
, ponieważ są one odpowiednio wprowadzane i podskakują). A potem właśnie dodałem losowe znaki inne niż zastrzeżone, tak że częstotliwość wszystkich znaków spacji jest mniej więcej taka sama.źródło
Brainfuck , 2545 bajtów, złamany przez Sp3000
Dla żartu.
źródło
Rozszczepienie , 67 bajtów, złamane przez BrainSteel
Oto kolejny, który powinien być nieco prostszy.
źródło
R
w metodziewrite
jest celowo kapitałem?Q , 64 bajty, złamane przez Maurisa
Wyjaśnienie:
KDB + ma własny protokół komunikatów / format serializacji , który można zastosować do ciągów jako takich:
To daje nam długi ciąg szesnastkowy powyżej. Konwersja, jeśli nie zgadłeś do tej pory, jest
-9!
.Aby wydrukować go
Hello, World!
dokładnie, muszę-1
to zrobić. Nieco irytujące, sama liczba również zostanie wydrukowana, więc;
znak końcowy służy do jej zniesienia.( był to dobry bieg przez nieco ponad 2 dni! )
źródło
Logo , 14292 bajtów, złamane przez Garetha McCaughana
Wyjaśnienie:
make
przypisuje wartość do zmiennej. W tym przypadkumake 'clean
jest to po prostu zaciemnianie, przypisywanie zmiennej kwadratowej w nawiasach kwadratowych,clean
a następnie nic z tym nie robić.type char count
służy do wydrukowania znaku na podstawie liczby elementów na poniższej liście w nawiasach kwadratowych.type
wypisuje wartość,char
zwraca znak oparty na wartości ASCII icount
zwraca liczbę elementów na liście. Na przykładtype char count [ a b c d e f g h i j ]
wydrukuje znak nowej linii (wartość ASCII 10).Wypróbuj online tutaj (wymagane wycięcie i wklejenie źródła)
źródło
Hello, world!
. +1~ Angielski zmieniony , 36 bajtów
Ta odpowiedź zawiera ochronę przed SPSS, Foo i Tiny. wzdycha
Cztery próby i kolejna odpowiedź w tym samym języku , ale moje zgłoszenie jest w końcu bezpieczne!
Wyjaśnienie
~ Angielski został zaprojektowany tak, aby wyglądał jak zwykły tekst, i prawdopodobnie dlatego drugie wydanie nie dodaje 2, ale zostało zmienione w nazwie języka.
Na szczęście istnieją aliasy funkcji
Display
iStop
, dzięki którym ~ angielski nie wygląda jak angielski.Spośród tych aliasów wybrałem
Echo
iEnd
, które wraz ze słowem kluczowymand
sprawiają, że kod źródłowy przypomina bardziej pełny język skryptowy niż esolang.Zdanie
pozdrawia świat i
zatrzymuje wykonywanie, więc następująca ochrona Foo jest po prostu ignorowana przez interpretera.
Możesz pobrać oficjalnego tłumacza z GitHub (link na stronie Esolang).
źródło
Karma , 67 bajtów
Pierwszy wiersz wypycha wszystkie znaki na stos, używając kolejki do zapisania niektórych bajtów. Druga linia wyskakuje i drukuje do 0, co jest pierwszym znakiem w linii 1.
źródło
gs2, 3 bajty, pęknięty przez feersum
W
gs2
:e
lub\x65
znajduje sięproduct
na listach (takich jak pusta lista znaków reprezentujących STDIN), więc wypycha int1
.|
lub\x7c
jestpower-of-2
, co zmienia go na 2 1 = 2.h
lub\x68
jesthello
, co jest absurdalnym poleceniem. Historia wygląda następująco: podczas projektowaniags2
postanowiłem pokonać każdy kod golfowy na serwerze golfowym shinh, ale mamgoruby
polecenie pisanki,h
które drukujeHello, world!
(zwróć uwagę na małe litery w), dzięki czemu może zająć pierwsze miejsce w hello world tabele wyników wyzwań . Chciałem postawić na goruby, więc dodałem własne polecenie pisanki,h
które przesuwa sięHello, world!
na stos, ale pozwala dostosować wielkość liter i interpunkcję, przesuwając przed nią liczbę całkowitą:Jak widać patrząc na
s2 =
linii, jeśli istnieje liczba2
na górze stosu, to będzie się zastąpić zmienności wielkie-W:Hello, World!
.źródło
U+2062 INVISIBLE TIMES
znaki, które są niewidoczne, ale nie są spacjami, więc dopełniają długość postu do ponad 30 znaków.maurisvh authored 5 days ago
i tak zgaduję.)> <>, 353 Bytes, Cracked by Sp3000
Jak odkrył Sp3000, jest to program> <>. Wszystkie nieużywane białe znaki i znaki są zastępowane przez. znak dla czytelności.
źródło
MarioLANG , 549 bajtów, złamany przez Sp3000
Bardzo podobał mi się ten jeden. Oto krótki przegląd tego, jak utworzyłem kod:
Zacząłem od Brainfuck „Hello World!” na esolangi:
Musiałem go nieco zmodyfikować, aby dodać przecinek, ale zignorujmy szczegóły ...
BF można przekształcić ML dość łatwo: zmiany
>
i<
do)
i(
odpowiednio. Dodaj główne piętro pod programem. Następnie zaimplementuj pętle za pomocą podłóg pomocniczych i wind. To zmienia powyższy program w:To działające „Hello World!” program w MarioLANG. (Ten kod odpowiada niepoprawnemu „Hello World!” W esolangach, a nie powyższym zaciemnionym kodzie ML).
W tym momencie możemy trochę zagrać w golfa, przesuwając część kodu pętli na podłogę pomocniczą. Teraz przełączam się na kod z tej odpowiedzi:
A teraz faktyczne zaciemnienie: pomyślałem, że to
=
byłaby nieoceniona gratka dla Sp3000, który znał język (użył go w Ewolucji OEIS). Ale MarioLANG ma również „ściany” zamiast „podłogi”, reprezentowane przez|
. Są one jednak funkcjonalnie identyczne, więc użyłem mniej powszechnego charakteru. Uznałem również, że wisząca podłoga będzie wyglądać podejrzanie, więc uzupełniałem dwie linie innymi postaciami. Dla pewności dodałem pierwszą linię ponownie na końcu i dopełniłem dopełnienie w środkowej linii przeciwnymi znakami pierwszej linii. Dodałem również pasujące nawiasy kwadratowe (które są ignorowane przez MarioLANG), ponieważ uznałem, że nieporównywalna[
może być kolejna mocna wskazówka. Na koniec napisałem skrypt CJam, aby posypać dokładnie 13=
losowymi pozycjami na podłodze (13, ponieważ to „Hello, World!
) i zmieniłem znaki wypełnienia w czwartym rzędzie, abyHelo, Wrd!
wyglądało to tak, jakbym czytał znaki z kodu źródłowego, jak mogłoby to być w przypadku odpowiedzi Befunge. Voilà, zaciemniony MarioLANG! :)źródło
ULDR
aby w ogóle zainicjować przepływ kontroli. Więc nie. ;)UNBABTIZED , 77 bajtów
Weryfikacja
Oficjalną stronę internetową i tłumacza znajdziesz tutaj .
Jak wspomniano na stronie internetowej, interpreter został napisany dla języka Python 2.2, który dopuszczał znaki inne niż ASCII w kodzie źródłowym. Możesz pobrać Python 2.2.3 1 lub naprawić go dla Python 2.7, wstawiając następujący wiersz na początku interpretera:
Jak to działa
Po pierwsze, biała strona nie powinna być dozwolona w kodzie źródłowym zgodnie z witryną, ale końcowe białe znaki po pełnej instrukcji wydają się nie powodować problemów.
Polecenie
$0,0
wykonuje sięmemory[0] = memory[0] == memory[0]
, co nie pomaga w żaden sposób powitać świata. Dodałem to polecenie wyłącznie w celu odwrócenia uwagi od faktu, że.
działa on na separator instrukcji.Reszta kodu składa się z trzynastu
:x
poleceń, które zapisują znak o kodzie x do STDOUT.Nieobjawiona wersja kodu źródłowego wyglądałaby następująco:
1 Kompilacja Pythona 2.2.3 była zaskakująco spokojna na openSUSE 13.2.
make
,make install
a wynikowy plik wykonywalny wydrukował wiele ostrzeżeń, ale UNBABTIZED działał zgodnie z przeznaczeniem.źródło
FUEUE: UNKNOWN , OP
14 razyHHeelllloo,, WWoorrlldd!!
, bez wychodzenia z programu.$
rozpoczyna literał Pythona, co powoduje błąd składniowy.Wyższy Subleq , 52 bajty, złamany przez Johna WH Smitha
To tak naprawdę nie wygląda jak esolang, ale żadna rozsądna pochodna C nie zaimplementowałaby
puts
bez domyślnej nowej linii.źródło
Mascarpone, 30 bajtów, spakowany przez Sp3000
Oparte na stosie? Może...
[!dlroW ,olleH]
wypycha wszystkie te znaki na stos (tak, w tym ograniczniki);$
wyskakuje]
; a następnie.
każdy drukuje jeden znak. Program kończy pracę z[
postacią wciąż na stosie.Zmusiłbym wyjście do użycia w pętli, ale nie mogę zrozumieć, jak one działają ...
źródło
$
wyskakuje,]
który z jakiegoś powodu zostaje popchniętyWir , 12302 bajtów, pęknięty przez Artema
Whirl ignoruje wszystko oprócz 1 i 0. Ja także losowo modyfikowałem inne cyfry, ale nie są one istotne. Kiedy zachowujesz tylko 1 i 0, otrzymujesz „Witaj, świecie!” przykład :)
źródło
GNU bc, 36 bajtów
Foo -immune wersja mojej poprzedniej próbie .
Wymaga to wersji GNU (lub dowolnej innej, która posiada
print
funkcję) bc. Pierwszy wiersz służy do zaciemnienia: w bc zmienne nie muszą być deklarowane i są inicjalizowane0
, więc mamy bezużyteczne przypisanie, ale z prawidłową składnią. Druga linia po prostu drukujeHello, World!
.źródło
module
lubpackage
, więc chyba się nie skompiluje. Może działa w REPL, ale nie jest to dozwolone.main = do:
).Szef kuchni, 1943 bajty, złamany przez Angew
źródło
APL, 39 bajtów, złamane przez Maurisa
Wydajność jest wszystkim.
Działa to w wersji demo ngn-apl .
Zaciemnienie APL nie jest łatwym zadaniem, jeśli chodzi o to, aby wyglądało mniej jak APL.
Oto co osiągnąłem:
Podwójne cudzysłowy nie działają we wszystkich dialektach. Dyalog, np., Nie obsługuje ich.
ngn / apl to jedyny znany mi dialekt, który domyślnie korzysta z indeksowania zerowego.
Przecinków nie powinno tam być.
Elementy wektorowe są zwykle oddzielane spacjami podczas pisania APL. Jednak
,
łączy się, więc kod w nawiasach łączy 13 singletonów.Wyglądałaby (nieco) nieudostępniona i bardziej przenośna wersja kodu
który działa w TryAPL , GNU APL.js i wersji demo ngn / apl .
źródło
ngn-apl
przynajmniej)Mysz , 105 bajtów
Można dostać tłumacza dla myszy napisany w C tutaj .
Mysz używa odwrotnej notacji polskiej, więc operatorzy podążają za operandami. (Pomyśl Lisp wstecz). Przypisywanie zmiennych jest wykonywane przy użyciu,
<variable>:
a przywoływanie wartości zmiennej odbywa się w następujący sposób<variable>.
. Wszystkie wartości w Myszy są liczbami całkowitymi.!
wyprowadza liczbę całkowitą i!'
wyprowadza znak ASCII powiązany z liczbą całkowitą. Wszystkie dane wyjściowe trafiają do STDOUT.Z jakiegokolwiek powodu wszystkie prawidłowe programy muszą kończyć się
$
.źródło
Haskell , 637 bajtów
Wideo z deobfuscation
źródło
Wordfuck , 1063 bajtów, złamany przez Martina Büttnera
Pamiętaj, że zakończenia linii muszą być w stylu uniksowym.
źródło
Wordy , 3279 bajtów
Jak zauważyłem w komentarzach, ten stóg siana jest głównie igłą.
Możemy powitać świat, wykonując następujące instrukcje:
Wordy koduje wszystkie instrukcje jako zdania, przy czym ułamek słów dłuższych i krótszych niż zaokrąglona średnia wybiera polecenie.
Najkrótsze zdania, jakie mogłem znaleźć dla używanych instrukcji, to:
Ale jak ukryć fakt, że długość słowa jest jedyną ważną rzeczą w kodzie źródłowym?
Ani kolejność słów, ani wybrane znaki słów nie mają znaczenia, o ile są one alfanumeryczne, dlatego postanowiłem dodać losowe znaki niealfanumeryczne do każdego słowa, aby uzupełnić je wszystkie o tej samej długości. Dodałem także kilka słów (bez znaków alfanumerycznych), aby nadać kodowi źródłowemu przyjemny prostokątny kształt.
Wygenerowałem końcowy kod źródłowy za pomocą tego programu CJam .
źródło