Dies ist eine Herausforderung für Polizisten und Räuber. Den Räuber-Thread finden Sie hier
Ihre Herausforderung besteht darin, ein Programm zu schreiben, das ein Anagramm seines Quellcodes ausgibt, jedoch nicht den ursprünglichen Quellcode.
Zum Beispiel das folgende Python-Programm,
print`'print*2``'*2`
druckt
'print*2``print*2``'
Das hat alle die gleichen Zeichen wie seine ursprüngliche Quelle, aber in einer anderen Reihenfolge.
Wenn Sie ein solches Programm gefunden haben, fügen Sie die Ausgabe des Programms als Antwort ein und lassen Sie das Programm weg, das es generiert. Wie Sie vielleicht vermutet haben, werden Räuber versuchen, das von Ihnen versteckte Programm oder ein Programm zu finden, das den Spezifikationen entspricht. Ihr Ziel ist es, das kürzeste Programm zu erstellen, das die Räuber nicht knacken können.
Regeln
Wie bei den meisten Cops-and-Robbers- Herausforderungen können Sie Ihrer Antwort die beabsichtigte Lösung hinzufügen und sie als sicher markieren, wenn Ihre Antwort eine Woche lang ungerissen bleibt . Einmal sicher, kann eine Antwort von Räubern nicht geknackt werden.
Sie müssen die Sprache der beabsichtigten Lösung nicht einschließen. Wenn Sie jedoch die Sprache nicht einschließen, können Räuber sie in jeder Sprache vor der Herausforderung knacken, während sie sie nur in der bereitgestellten Sprache knacken können, wenn Sie die Sprache angeben.
Es gelten die Standardregeln für Quines.
quelle
Antworten:
Brain-Flak , 231 Bytes vom Weizen-Zauberer geknackt
Das ursprüngliche Programm verwendet das
-A
Argument.Hier sind die Zählungen:
quelle
Python 2, 96 Bytes, geknackt von math_junkie
Ausgabe:
Zum ersten Mal Code Golf! Hoffe es ist nicht zu einfach.
quelle
print('')
,chr() + ''
so weitHaskell, 107 Bytes, Gebrochen von Nimi
Es gibt eine zusätzliche nachgestellte Zeile.
Ursprüngliche Lösung:
Probieren Sie es online!
Meine Hauptidee war es, ein Quine zu schreiben, das seinen eigenen Quellcode sortiert, bevor es ohne Verwendung einer Bibliotheksfunktion
sort
ausgegeben wird. Erst nach einem ersten Crack-Versuch von nimi kam mir der Gedanke , dass der Programmcode manuell sortiert, fest in das Programm codiert und dann beim Verdoppeln jedes Buchstabens ausgedruckt werden konnte. Die begrenzten verfügbaren Zeichen machen diesen Ansatz jedoch umständlicher und Nimis erfolgreicher Crack ist meinem ursprünglichen Programm ziemlich ähnlich.Erläuterung:
quelle
;
einen NL zu ersetzen ):i[]d=[d,d];main=print$i[]=<<"$$ ... |||"--
und alle fehlenden Zeichen nach dem--
. Ich fand diese Version nach meiner Antwort aus dem Räuber-Thread und nachdem du deine Antwort mit der nun geänderten Erklärung enthüllt hast.Nicht spezifizierte Sprache, 124 Bytes,
Im Thema der Antwort von DJMcMayhem sind dies die ersten 32 ASCII-Zeichen (abgesehen von
0x00
), die jeweils viermal gedruckt werden. Da keines davon sichtbar ist, habe ich den eigentlichen Code nicht in meine Antwort aufgenommen.Hier ist der Hexdump:
Hier ist jedoch ein Python, der es druckt (und eine neue Zeile), wenn Sie möchten:
quelle
Pyth , 32 Bytes, Gebrochen von math_junkie
Originelle Lösung
Probieren Sie es online!
quelle
CJam, 46 Bytes, geknackt von math_junkie
quelle
V , 21 Bytes (Sicher!)
Beachten Sie den führenden Zeilenumbruch.
Da dies nicht druckbare Dateien enthält, ist hier ein Hexdump:
Hier finden Sie einen Link zum erweiterbaren Standard-V-Quine
Hier ist die Originalversion:
Probieren Sie es online!
Die lesbare Version ist:
Dies funktioniert durch Einbetten von sort in das standardmäßige erweiterbare Quine. Als ich wegen dieser Antwort über V-Quines nachdachte, wurde mir klar, dass das erweiterbare Standard-Quine um drei Bytes verkürzt werden kann. Diese Lösung hätte also lauten können:
Erläuterung:
quelle
Nicht spezifizierte Sprache, 254 Bytes Gebrochen von @Dennis!
Ich bezweifle, dass dies der Kürze halber gewinnen wird, aber es wird ein Schmerz sein, ihn zu knacken, also lohnt es sich immer noch, ihn zu machen.
Aufgrund eines Fehlers ist die Reihenfolge
0x0b, 0x0c, 0x0a
ein wenig durcheinander geraten, aber dies ist definitiv die eigentliche Ausgabe.Ich dachte, ich würde die Sprache nicht spezifizieren, um zu sehen, in welchen verschiedenen Sprachen dies möglich ist. Da die Ausgabe meistens nicht-ASCII ist, ist hier ein Hexdump der Ausgabe:
Das ist jedes einzelne ASCII-Zeichen mit Ausnahme von
0x00
und,0x0D
weil beide seltsames Verhalten bei TIO verursacht haben. Viel Spaß beim Knacken! >: DDer ursprüngliche Code war in V.
Probieren Sie es online aus
Hexdump:
Grundsätzlich wird alles bis auf den
S
gerade eingefügten Müll in den Zwischenspeicher verschoben. Am0xEE
Anfang soll nur sichergestellt werden, dass nicht alles nach dem Zeilenumbruch in einer Schleife oder einem Makro abläuft. Dann machen wirquelle
Oktave , 91 Bytes
quelle
PHP, 130 Bytes (Sicher)
Ursprüngliche Lösung
Ich konnte nicht verstehen, dass es nicht geknackt war
quelle
Rate mal, 43 Bytes
Es war schwierig zu entscheiden, welche Sprache es war oder nicht, aber ich denke, diese Option ist besser. Beachten Sie, dass eine nachgestellte Zeile vorhanden ist.
quelle