Masz napisać program, który wykonuje jedną z poniższych czynności.
- Wyświetla tylko „Hello World”, nic więcej
- Przerywa i nic więcej (bez danych wyjściowych, bez błędów).
- Pobiera jeden wiersz danych wejściowych, analizuje go jako liczbę całkowitą, wyświetla pierwszy z wielu liczb pierwszych (lub daje niezły błąd, jeśli podano dane wejściowe, których nie można przeanalizować jako liczbę całkowitą, lub jest mniejsze niż 0.)
- Biorąc pod uwagę jeden wiersz danych wejściowych, analizuje, że ma symbol akcji i sprawdza w Internecie bieżącą wartość akcji i jej zmianę.
Złap, nie powinno być oczywiste, jaką funkcję pełni. Mianowicie, dla kogoś, kto patrzy na twój kod, nie powinno być oczywiste, jaką funkcję będzie pełnił. Może także wykonywać i być w stanie wykonywać tylko jedną funkcję (nie może wybierać i wybierać). O tym, jak dobry jest program, decyduje to, jak niepewny jest ktoś, kto na niego patrzy, jaka jest jego funkcja, a także jak dobrze jest znany osoba jest z tym językiem.
BONUS: Jeśli zrobisz to w sprytny sposób, chociaż dla dowolnego kompilatora / intruza i platformy program będzie wykonywał tę samą funkcję, dla różnych kompilatorów / interpretatorów lub platform, będzie wykonywać inną funkcję. Ta premia może zostać zebrana tylko wtedy, gdy zostanie wykonana sprytnie.
BONUS: Jeśli twój program zawiera tylko kod, który jest zdolny do jednej funkcji (nic nie zapisuj, ponieważ jest w stanie to zrobić pusty kod) i nie jest możliwe dokonanie prostej modyfikacji niezwiązanej z funkcją, aby umożliwić jej wykonanie innej funkcji. Na przykład: jeśli tak
obfuscatedBool = 1g8uhad'l8fygrcetdu8y4fd/,.oe87fy4d --Magic
if obfuscatedBool: print "Hello World"
Nie będzie liczony jako zaciemnionyBool może być ustawiony jako Prawda lub Fałsz, aby wydrukować odpowiednio „Hello World” lub nic nie robić.
BONUS INFINITY: Jeśli zrealizujesz oba bonusy jednocześnie, jesteś magiczny.
BONUS NEGATYWNY: Używanie bibliotek o określonych zdolnościach do wykonywania funkcji.
Głosujący, weź pod uwagę bonusy, ponieważ wygrywa program z największą liczbą głosów!
Uwaga: Jeśli powiesz, co robi Twój program, pamiętaj o użyciu składni spoilera!
Odpowiedzi:
Whitespace / Brainfuck / Python
Wikipedia: Whitespace (język programowania)
Online interpreter białych znaków do testowania odpowiedzi
Online Brainfuck interpreter do testowania odpowiedzi
źródło
JS
źródło
(o^_^o)
.Zestaw MS-DOS x86
Ponieważ nie jest już zaciemniony, gdy jest w asemblerze, zróbmy jeszcze gorzej! To POWINIEN działać z dowolnym asemblerem, który może łączyć się z plikiem COM, ale testowałem tylko z TASM dla DOS przy użyciu
tasm obfuse
,tlink /t obfuse
źródło
do
źródło
LOLKOD
Ten język jest już zaciemniony. Oto mój kod:
źródło
JavaScript (ES6)
Używanie pragmy
black magic
do ujawnienia prawdziwej mocy JavaScript:Wydajność:
Objaśnienia:
Ten program jest w rzeczywistości dość prosty i można go streścić poniżej.
Wszystko inne, jeśli cukier syntaktyczny!
Oto wersja z adnotacjami:
źródło
COBOL (IBM Enterprise COBOL)
Jeśli zostanie to pokazane, bardzo blisko 100% programistów COBOL IBM Mainframe powiedziałoby „to nawet nie jest program, który się nie skompiluje!”. Im więcej mają doświadczenia, tym mniej prawdopodobne jest, że pomyślą, że się skompiluje (ponieważ starsze wersje COBOL-a Mainframe były znacznie bardziej rygorystyczne).
Następnie zapytaj „jeśli się kompiluje, co robi?” Mówiliby: „nie skompiluje się, ale gdyby tak się stało, dałoby to jakiś błąd, prawdopodobnie środowisko językowe dałoby U4038 lub coś w tym rodzaju”.
Udało się go skrócić. Istnieją cztery DYWIZJE w programie COBOL. IDENTYFIKACJA / ID, ŚRODOWISKO, DANE, PROCEDURA. Okazuje się, że PROCEDURA wymaga słowa PODZIAŁ, a inni nie. Zgadnij, który z nich usunąłem jako pierwszy i założyłem, że inne słowa PODZIAŁ były obowiązkowe ... dalsze zagadki ujawniły inaczej. Szkoda, że to nie Golf. Dwuznakowy program COBOL ...
źródło
Java, C ++ - 11 1 Żądany bonus
Nie jestem pewien, czy dostałem oba bonusy, ale przeszkadzało mi już połączenie dwóch języków programowania ...
źródło
Python - 1 przyznany bonus
W Pythonie 2
1
podzielone przez2
równe0
.1
podzielone przez0
nie może być ocenione i powoduje błąd dzielenia przez zero. Nic nie jest drukowane, a mimo to program kończy się bezbłędnie.W Pythonie 3,
1/2
=>0.5
i1/0.5
=>2.0
. Żaden błąd.Hello, World!
jest drukowane.źródło
hello world
w jakiś sposób, a wszystko będzie dobrze.Partia
Nie wiem, czy zawiłe liczy się jako zaciemnienie, chociaż z pewnością istnieją pewne aspekty zaciemnienia.
źródło
%%%%
xDRuby - czy jest to biały znak?
Czy ktoś może zgadnąć, co robię?
Mała wskazówka: jeśli chcesz go uruchomić, skopiuj cały kod w polu kodu;)Aktualizacja: Kopiowanie kodu nie działa z powodu problemów związanych z Unicode? Wydaje się, że rozwidlenie wersji online, a następnie skopiowanie kodu działa! Zwróć uwagę na białe znaki;)
Wersja online
Wydajność:
Wyjaśnienie:
method_missing
wywoływana jest, co oszczędza długości porcjiat_exit
znaki są tworzone przez łączenie cyfr itp. i wyrażenie jest oceniane, w tym przypadkuputs 'Hello world!'
źródło
Naprzód
Stwórzmy nowe ZADANIE.
źródło
PHP:
$ words = array („Heart”, „eagle”, „low”, „lonely”, „over”, „SPACE”, „Window”, „optimus”, „rotting”, „list”, „done”, „ !gotowy');źródło
Brainfuck
Wyjaśnienie
źródło
C ++ 11
Żądam premii za zależność od kompilatora - na przykład będzie to wyglądało inaczej między gcc 4.8 a gcc 4.9.
Objaśnienie zależności kompilatora:
Ogólne wyjaśnienie zachowania:
źródło
Delfy
Nie jestem pewien, czy to się liczy, ale powiem wam, jak widziałem to wyzwanie.
Myślałem o napisaniu kodu, który nie wykonałby tego, czego się spodziewałeś.
źródło
Haskell
źródło
JS
źródło
Matlab
Oto kod, który może z grubsza wykonywać różne operacje, czy możesz przewidzieć przepływ?
Oto wskazówka:
źródło
Ten robi oba bonusy. Na końcu spójrz na spoilery, aby zobaczyć, co robi.
Java / Brainf * ck
Brainfuck
Jawa
źródło
C, 346 znaków
To stary program, który stworzyłem 10 lat temu. Drukuje „Witaj, świecie!” Kod wykorzystuje liczby palindromowe w podstawie 10 i jest nieco zaciemniony.
Och, prawie zapomniałem ... Program działa tylko po uruchomieniu bez argumentów wiersza poleceń. Ponadto, jeśli uruchomisz go z 11 argumentami wiersza poleceń, wydaje się, że wchodzi w nieskończoną pętlę. 12 jest w porządku.
źródło
Malbolge
Powiedziałbym, że nie można go już zaciemnić niż Malbolge;)
źródło
bash / sh, python
Spowodowałoby to:
po wykonaniu z
bash
.Kiedy ten sam kod jest wykonywany z
sh
lubbash
w trybie posix, tzn. Mówiącbash --posix filename
, nie generuje on żadnego wyniku.źródło
Teraz, zgodnie z komentarzami i czytając, zrobi to 1 z 3 rzeczy.
Jednak ten program nie przestrzega zbyt dobrze dokumentacji, ponieważ bez względu na to, co mu dasz ... zawsze wydrukuje CZWARTY cel, co jest niczym.
źródło
JavaScript
Nawet tego nie rozumiem
Uwaga: skrypt nie jest mój: oryginalne źródło
źródło
[] + [] -> ''
,day() - day() -> 0
. Stamtąd wygląda to tak, jakby pobrać dziesiętną reprezentację każdego znaku, a następnie zrobićString.fromCharCode
na nim.Perl
To moja pierwsza próba napisania zaciemnionego kodu. Mam nadzieję że to polubisz.
źródło
C ++:
źródło
Ruby 2.0.0 + 1 bonus
Okej, więc wyjaśnię bonus w spoilerze. Ale jest to właściwie tylko okrągły sposób wydrukowania „Hello World!” w Ruby.
A wynik:
Co?
I bonus:
źródło
Matlab
Bardzo prosty mały kod, który prawdopodobnie można łatwo rozszerzyć, aby był bardziej zaciemniony, ale zostawiłem go mniejszy jako dowód zasady, ponieważ podejście jest nieco kiepskie. Jestem całkiem pewien, że nie można obliczyć wyniku bez uruchomienia przynajmniej części kodu.
źródło
C ++ lub C & Bonus nr 1
Odbieram bonus nr 1.
clang/gcc
vs.clang++/g++
.Z C ++
Z C.
źródło