Sie müssen ein Programm schreiben, das eine der folgenden Aktionen ausführt.
- Nur zeigt "Hallo Welt" nichts anderes
- Beendet und sonst nichts (keine Ausgabe, keine Fehler.)
- Nimmt eine Eingabezeile, parst sie als Ganzzahl, zeigt die erste mit so vielen Primzahlen an (oder gibt einen netten Fehler aus, wenn eine Eingabe angegeben wird, die nicht als Ganzzahl analysiert werden kann oder kleiner als 0 ist).
- Bei einer bestimmten Eingabezeile wird ein Aktiensymbol analysiert und online nach dem aktuellen Aktienwert und seiner Änderung gesucht.
Der Haken, es sollte nicht ersichtlich sein, welche Funktion es ausführt. Für jemanden, der sich Ihren Code ansieht, sollte es nämlich nicht offensichtlich sein, welche Funktion er ausführen wird. Es kann auch sein, dass es nur eine Funktion ausführt und ausführen kann (es kann nicht auswählen und auswählen). Wie gut ein Programm ist, hängt davon ab, wie unsicher jemand ist, der es in Bezug auf seine Funktion betrachtet, und auch davon, wie vertraut das ist Person ist mit dieser Sprache.
BONUS: Wenn Sie es auf clevere Weise schaffen, obwohl für einen Compiler / Interpreter und eine Plattform das Programm dieselbe Funktion ausführt, für verschiedene Compiler / Interpreter oder Plattformen eine andere Funktion. Dieser Bonus kann nur dann eingesammelt werden, wenn er geschickt ausgeführt wird.
BONUS: Wenn Ihr Programm nur Code enthält, der eine Funktion ausführen kann (nichts speichern, da dies mit leerem Code möglich ist), und es nicht möglich ist, eine einfache Änderung unabhängig von der Funktion vorzunehmen, damit eine andere Funktion ausgeführt werden kann. Zum Beispiel, wenn Sie es getan haben
obfuscatedBool = 1g8uhad'l8fygrcetdu8y4fd/,.oe87fy4d --Magic
if obfuscatedBool: print "Hello World"
Würde nicht zählen, wenn obfuscatedBool auf "True" oder "False" gesetzt werden könnte, um "Hello World" zu drucken, oder nichts zu tun.
INFINITY BONUS: Wenn Sie beide Boni gleichzeitig realisieren, sind Sie magisch.
Negativer Bonus: Verwenden von Bibliotheken mit bestimmten Fähigkeiten, um die Funktionen auszuführen.
Wähler, nehmen Sie die Boni in Betracht, denn das Programm mit den meisten Stimmen gewinnt!
Hinweis: Wenn Sie sagen, was Ihr Programm tut, achten Sie darauf, die Spoiler-Syntax zu verwenden!
Antworten:
Whitespace / Brainfuck / Python
Wikipedia: Whitespace (Programmiersprache)
Online-Whitespace-Interpreter zum Testen der Antwort
Online-Brainfuck-Interpreter zum Testen der Antwort
quelle
JS
quelle
(o^_^o)
.MS-DOS x86-Assembly
Da es bei der Montage noch nicht verschleiert ist, sollten wir es noch schlimmer machen! Dies SOLLTE mit jedem Assembler funktionieren, der sich zu einer COM-Datei zusammenfügen lässt, aber ich habe nur mit TASM für DOS getestet
tasm obfuse
,tlink /t obfuse
quelle
C
quelle
LOLCODE
Diese Sprache ist bereits für sich verschleiert. Hier ist mein Code:
quelle
JavaScript (ES6)
Verwenden Sie Pragma
black magic
, um die wahre Kraft von JavaScript zu enthüllen:Ausgabe:
Erklärungen:
Dieses Programm ist eigentlich recht einfach und könnte wie folgt zusammengefasst werden.
Alles andere als syntaktischer Zucker!
Hier ist die kommentierte Version:
quelle
COBOL (IBM Enterprise COBOL)
Wenn dies gezeigt wird, würden nahezu 100% der IBM Mainframe COBOL-Programmierer sagen, dass dies nicht einmal ein Programm ist, das nicht kompiliert werden kann. Je mehr Erfahrung sie haben, desto unwahrscheinlicher ist die Kompilierung (da ältere Mainframe-COBOLs viel strenger waren).
Dann fragen Sie: "Wenn es kompiliert, was macht es?" Sie würden sagen, "es wird nicht kompiliert, aber wenn es so wäre, würde es eine Art Fehler geben, wahrscheinlich würde die Sprachumgebung ein U4038 oder so etwas geben".
Hat es geschafft, es zu verkürzen. In einem COBOL-Programm gibt es vier DIVISIONEN. IDENTIFIKATION / ID, UMWELT, DATEN, VERFAHREN. Es stellt sich heraus , dass dieses Verfahren erfordert das Wort DIVISION und die andere nicht. Ratet mal, welches ich zuerst entfernt und angenommen habe, dass die anderen Wörter DIVISION obligatorisch sind ... weitere Rätsel ergaben sich ansonsten. Schade, dass es kein Golf ist. Ein zweistelliges COBOL-Programm ...
quelle
Java, C ++ - 11 1 Bonus beansprucht
Ich bin mir nicht sicher, ob ich beide Boni bekommen habe, aber es bereitete mir schon Kopfzerbrechen, zwei Programmiersprachen zu mischen ...
quelle
Python - 1 Bonus beansprucht
In Python 2
1
geteilt durch2
gleich0
.1
geteilt durch0
kann nicht ausgewertet werden und wirft eine Division durch Null Fehler. Es wird nichts gedruckt und das Programm wird trotzdem fehlerfrei beendet.In Python 3
1/2
=>0.5
und1/0.5
=>2.0
. Kein Fehler.Hello, World!
gedruckt wird.quelle
hello world
in irgendeiner Weise verschleiern und Sie werden in Ordnung sein.Stapel
Ich weiß nicht, dass die Verschleierung als verschleiert gilt, obwohl es definitiv einige Aspekte der Verschleierung gibt.
quelle
%%%%
xDRuby - oder ist es Whitespace?
Kann jemand raten, was ich tue?
Kleiner Tipp: Wenn Sie es ausführen möchten, kopieren Sie bitte den gesamten Code in das Code-Feld;)Update: Das Kopieren des Codes scheint aufgrund von Unicode-Problemen nicht zu funktionieren? Das Forken der Online-Version und das anschließende Kopieren des Codes scheint zu funktionieren! Achten Sie auf das Leerzeichen;)
Online Version
Ausgabe:
Erläuterung:
method_missing
wird aufgerufen, wodurch die Länge der Chunks gespart wirdat_exit
den Zeichen werden durch Verketten der Ziffern usw. gebildet und der Ausdruck wird in diesem Fall ausgewertetputs 'Hello world!'
quelle
Forth
Erstellen wir eine neue AUFGABE.
quelle
PHP:
$ words = array ('Heart', 'eagle', 'low', 'lonely', 'over', 'SPACE', 'Window', 'optimus', 'rotting', 'list', 'done', ' !getan');quelle
Brainfuck
Erläuterung
quelle
C ++ 11
Ich beanspruche den Bonus für die Compilerabhängigkeit - dies wird zum Beispiel ein unterschiedliches Verhalten zwischen gcc 4.8 und gcc 4.9 aufweisen.
Erklärung der Compilerabhängigkeit:
Allgemeine Verhaltenserklärung:
quelle
Delphi
Ich bin mir nicht sicher, ob dies zählt, aber ich werde Ihnen sagen, wie ich diese Herausforderung gesehen habe.
Mein Gedanke war, Code zu schreiben, der nicht das ausführt, was Sie erwartet hatten.
quelle
Haskell
quelle
JS
quelle
Matlab
Hier ist Code, der grob verschiedene Operationen ausführen kann. Können Sie den Fluss vorhersagen?
Hier ist ein Hinweis:
quelle
Dieser macht beide Boni. Schauen Sie sich am Ende die Spoiler an, um zu sehen, was sie bewirken.
Java / Brainf * ck
Brainfuck
Java
quelle
C 346 Zeichen
Dies ist ein altes Programm, das ich vor über 10 Jahren erstellt habe. Es druckt tatsächlich "Hallo, Welt!" Der Code verwendet palindromische Zahlen in der Basis 10 und ist leicht verschleiert.
Oh, ich hätte es fast vergessen ... Das Programm funktioniert nur, wenn es ohne Kommandozeilenargumente gestartet wird. Wenn Sie es mit 11 Befehlszeilenargumenten starten, scheint es in eine Endlosschleife einzutreten. 12 ist zwar in Ordnung.
quelle
Malbolge
Ich würde sagen, dass es nicht mehr verschleiert werden kann als Malbolge;)
quelle
Bash / Sh, Python
Dies würde erzeugen:
wenn ausgeführt mit
bash
.Wenn derselbe Code mit
sh
oderbash
im Posix-Modus ausgeführt wird, dh wenn gesagt wirdbash --posix filename
, erzeugt er keine Ausgabe.quelle
Nun, nach den Kommentaren und durch das Lesen wird dies 1 von 3 Dingen tun.
Dieses Programm folgt jedoch nicht sehr gut seiner Dokumentation, denn egal was Sie ihm geben ... es gibt immer das VIERTE Ziel aus, was nichts ist.
quelle
Javascript
Ich verstehe das nicht einmal
Beachten Sie, dass das Skript nicht von mir stammt: Originalquelle
quelle
[] + [] -> ''
,day() - day() -> 0
. Von dort aus sieht es einfach so aus, als würde man die Dezimaldarstellung jedes Zeichens abrufen und sie dann bearbeitenString.fromCharCode
.Perl
Dies ist mein erster Versuch, verschleierten Code zu schreiben. Ich hoffe du wirst es mögen.
quelle
C ++:
quelle
Ruby 2.0.0 + 1 Bonus
Okay, also erkläre ich den Bonus im Spoiler. Aber das ist so ziemlich nur ein Umweg, um "Hello World!" in Ruby.
Und die Ausgabe:
Was?
Und der Bonus:
quelle
Matlab
Sehr einfacher kleiner Code, könnte wahrscheinlich leicht erweitert werden, um ihn zu verschleiern, aber ich habe ihn als Beweis des Prinzips kleiner belassen, weil der Ansatz ein bisschen lahm ist. Ich bin mir ziemlich sicher, dass es unmöglich ist, das Ergebnis herauszufinden, ohne zumindest einen Teil des Codes auszuführen.
quelle
C ++ oder C & Bonus Nr. 1
Ich beanspruche Bonus Nr. 1.
clang/gcc
vs.clang++/g++
.Mit C ++
Mit C
quelle