Das ist der Faden der Bullen. Der Räuberfaden geht hier .
Schreiben Sie ein Programm oder eine Funktion, die nur aus druckbaren ASCII-Zeichen (ohne Tabulator und Zeilenvorschub) besteht und mindestens 5 druckbare ASCII-Zeichen in aufsteigender Reihenfolge ausgibt (von Leerzeichen bis Tilde / 32 bis 126). Zeichen können mehrfach ausgegeben werden, solange sie nebeneinander liegen. Eine einzelne nachgestellte Zeile wird akzeptiert. Sie müssen die vollständige Ausgabe bereitstellen, und für jeweils 6 Zeichen in Ihrem Code müssen Sie an der angezeigten Position ein Zeichen in Ihrem Code bereitstellen. Wenn Ihr Code aus 5 oder weniger Zeichen besteht, müssen Sie nur die Länge angeben. Sie dürfen nicht mehr als 1 Zeichen pro 6 in Ihrem Code offenlegen.
Wenn Ihr Code also alphaprinter
das Alphabet von az ausgibt, müssen Sie 2 Zeichen Ihres Codes offenlegen (für die anderen verwenden Sie den Unterstrich), zum Beispiel:
al__________ // or
__p__p______ // or
__________er
Regeln / Spezifikationen:
- Sie können keine nachgestellten Leerzeichen anhängen, die keine Funktion haben.
- Sie können keine Kommentare verwenden (aber die Räuber können Kommentare verwenden, wenn sie den Code knacken)
- Eingebaute kryptografische Grundelemente (einschließlich Rng, Verschlüsselung, Entschlüsselung und Hash) sind nicht zulässig.
- In Sprachen, in denen die Standardausgabe wie in MATLAB:
ans =
ist, wird dies akzeptiert, sofern klar angegeben und angezeigt wird, dass die Ausgabe erfolgtans =
. Es sollte auch klar angegeben werden, ob dies Teil der "aufsteigenden Ausgabe" ist oder nicht. - Die Ausgabe muss deterministisch sein
- Die Verwendung einer nicht freien Sprache wird nicht akzeptiert
- Die Ausgabe muss nicht aus aufeinander folgenden Zeichen bestehen. Beide
abcde
undabcdg
sind gültige Ausgaben. - Die Zeichen müssen nicht eindeutig sein, solange die Ausgabe mindestens 5 Zeichen enthält.
aaaaa
undaaacc
sind gültig. - Antworten, die eine REPL-Umgebung voraussetzen, gelten nicht als gültige Programme oder Funktionen und sind daher nicht zulässig.
- STDERR wird nicht als gültige Ausgabe betrachtet, es können jedoch Daten in STDERR geschrieben werden.
Wenn die aufgedeckten Zeichen Unterstriche sind, müssen Sie sie wie unten gezeigt identifizieren. In diesem Fall werden das zweite und das sechste Zeichen unterstrichen, während die anderen unbekannt sind.
_____________
| |
Hinweis: Die Räuber müssen nur einen Code finden, der die gleiche Ausgabe erzeugt. Die Sprache, die Länge der Räuberlösung und die Position der aufgedeckten Charaktere müssen ebenfalls übereinstimmen.
Ihre Punktzahl ist die Anzahl der Zeichen in Ihrem Code. Der Gewinner ist die Einsendung mit der niedrigsten Punktzahl, die seit 7 Tagen nicht geknackt wurde. Nur Einsendungen, die im Jahr 2015 (UTC) veröffentlicht wurden, sind für den Gewinn berechtigt. Später eingereichte Beiträge sind willkommen, können aber nicht gewinnen.
Um den Gewinn einzufordern, müssen Sie den vollständigen Code offenlegen (nach 7 Tagen).
Dein Beitrag sollte folgendermaßen formatiert sein (nn ist die Anzahl der Zeichen):
Sprache, nn Zeichen
Ausgabe:
abcdefghijklmnopqrstuvwxyz
Code (12 Zeichen):
al__________
Wenn der Code geknackt ist, fügen Sie [Cracked] (Link zum Cracker) in die Kopfzeile ein. Wenn die Übermittlung sicher ist, fügen Sie "Sicher" in die Kopfzeile ein und geben Sie den vollständigen Code in Ihrer Antwort an. Nur Antworten, die den vollständigen Code enthüllt haben, sind für den Gewinn berechtigt.
quelle
print ( "abcde" )
, kann ich drei Leerzeichen aufdecken?Antworten:
Hexagony , 8 Zeichen, sicher
druckt
Sie können Hexagony online ausprobieren
Lösung
Das
`
ist nur eine Fehlleitung, um den Code so aussehen zu lassen, als ob er Seitenlänge 3 erfordert. Sofern der Interpreter nicht mit-d
dem Backtick ausgeführt wird, wird er einfach aus dem Quellcode entfernt, bevor das Layout bestimmt wird. Danach passt der Code in die Seitenlänge 2:Dadurch wird der Speicherzeiger (MP) um ein Sechseck des Speicherrasters verschoben, während der Wert auf die nächste Kante kopiert, inkrementiert und gedruckt wird.
So sieht das Speicherraster aus, wobei der MP an der markierten Position beginnt:
Anfangs sind alle Kanten Null. Das erste
&
ist ein No-Op,)
erhöht aber die Kante und!
druckt die1
. Bewegt"
sich dann zurück nach links (die mit 2 bezeichnete Kante ). Dort wird&
ein Wert kopiert. Da die Kante derzeit Null ist, wird der linke Nachbar (in Richtung des MP) kopiert, der1
gerade gedruckt wurde.)
erhöht es,!
druckt das2
. Dies geht so lange weiter, wie wir neue Kanten besuchen und alle Ziffern bis zu drucken6
. Wenn wir die Kante treffen, mit der wir begonnen haben,&
wird stattdessen der rechte Nachbar kopiert (da der Kantenwert positiv ist), sodass die Kante0
wieder wird und der Steuerungsfluss zur letzten Zeile springt, in der@
Beendet das Programm.Probieren Sie es online aus.
quelle
123456
, aber es hört nicht auf zu rennen und muss getötet werden. Ist das erlaubtPerl, 46 Zeichen (sicher)
Ausgabe:
Code:
Ich habe es irgendwie geschafft, das Original innerhalb einer Woche zu löschen, aber ich denke, das ist richtig:
quelle
Brainfuck, 48 Charaktere, geknackt von Mitch Schwartz
Ich habe dieses für die Räuber gemacht. Es wird definitiv nicht der Gewinner sein :)
Dies gibt aus:
Lösung:
Ich habe es hier getestet .
Tipp: Versuchen Sie nicht, Programme zu finden, die von Online-Generatoren generiert wurden, haha. Dies wurde handgeschrieben und kann nur durch logisches Denken gelöst werden :)
quelle
CJam, 13 Zeichen
druckt
Sie können CJam online testen.
Lösung
Ich fand es ziemlich clever und neuartig, einen Polizisten auf eine verallgemeinerte Quine zu stützen. Der Moment , als ich das geschrieben, wurde mir klar , dass
__
under
ist völlig nutzlos, weshalb wir gepostet die 8-Byte CJam cop für eine wettbewerbsfähigere Punktzahl. Pietu hat das ziemlich schnell geknackt, also hatte ich Angst, dass er das auch herausfinden würde. Ich nehme an, die unnötig verschlungene Zeichen-Transliteration hat es gerettet.Wie auch immer, der Code nimmt seine eigenen Zeichen (mit Ausnahme der
_~
), XORs jeweils mit 19 zur Verschleierung und sortiert sie dann.Dieser Polizist führte mich zur "Entdeckung" des Xorting , obwohl ich es hier eigentlich nicht benutze (und es wäre wahrscheinlich nahezu unmöglich, es mit einem kurzen verallgemeinerten Quine zu verwenden).
quelle
Laut 3SP , 89 Zeichen (sicher)
Ursprüngliches Programm:
Dieses Programm wird gedruckt
(Beachten Sie das führende Leerzeichen), und sonst nichts!
Erläuterung (* n bezieht sich auf die n-te Zelle im Speicher):
Die letzten beiden Befehle stellen sich als ausreichend heraus, um zu verhindern, dass 1 bei nachfolgenden Durchläufen des Programms erneut inkrementiert wird, was bedeutet, dass nie wieder etwas gedruckt wird, obwohl alle Speicheradressen von * 36 an für immer auf den Wert 36 gesetzt werden .
quelle
an esolang in which structured programming is impossible and every program has to be written from scratch.
0_0 plus eins von mir.This is probably not that language
. Wenn Sie sich hinsetzen und versuchen, ein Programm zu schreiben, das diese Ausgabe liefert, erhalten Sie wahrscheinlich etwas sehr Ähnliches.JavaScript (ES6), 60 Zeichen, Gebrochen von user81655
Nicht versprochen zu gewinnen, aber hoffentlich macht es Spaß zu knacken:
Dies ist eine Funktion, die Folgendes zurückgibt:
Bearbeiten
user81655 hat es zeichenweise geknackt :
quelle
MatlabOctave, 27 Zeichen, sicherHerausforderung
Bezüglich der neuen Spracheinschränkungen: Es funktioniert auch in Octave.
Ausgabe (in Oktave): (
ans =
ist nicht Teil der Ausgabe, das erste Zeichen der Ausgabe ist"
)Ausgabe (in Matlab): (
ans = \n\n
ist nicht Teil der Ausgabe, die Ausgabe ist nur die letzte Zeile)Lösung
quelle
It also works in Octave.
R, 60 Bytes, durch Plannapus geknackt
Ausgabe:
Code:
Ich denke das wird nicht so schwer. Wir werden sehen.
quelle
Jolf , 27 Zeichen, Gebrochen von Adnan
druckt
Dolmetscher .
Originalcode:
Glückwunsch an Adnan! Sie erschrecken mich.
Hier können Sie Ihren Beitrag testen, um zu sehen, wie viele Zeichen entfernt werden müssen.
quelle
Fortran, 45 Zeichen, sicher
Komplette Ausgabe:
Cat versuchte es hier zu knacken
Code (45 Zeichen):
Programmcode:
quelle
/
!PHP, 46 Zeichen, sicher
Quelle:
Gibt eine 84 Zeichen lange Zeichenfolge aus:
Hinweis
Aufgedeckter Code
quelle
CJam, 8 Bytes, Cracked von Pietu1998
druckt
Sie können CJam online testen .
quelle
05AB1E , 13 Zeichen, von Quintopie geknackt
Ich bin ein Idiot. Ich habe vergessen, die Power-Funktion (-_-。) zu implementieren. Hier ist der verschleierte Code:
Mein ursprünglicher Code war:
Erläuterung:
Dies wird Folgendes ausgeben:
Ja, das sind 99 Nullen, gefolgt von einer 1.
Beachten Sie , dass ich momentan eine Power-Funktion implementiert habe. Das könnte also in sechs Bytes geschehen:
quelle
"4"3*
= 12)Python 3.4, 127 Zeichen
Dies ist mein erster Kupferpfosten. Ich denke / hoffe es ist nicht zu schwer oder zu offensichtlich.
Der verschleierte Code:
erstellt diese Ausgabe (es gibt 5 Leerzeichen am Anfang; die Gesamtlänge beträgt 7740 Zeichen):
quelle
Pyth, 17 Zeichen, geknackt von Pietu1998
Ausgabe:
Code:
Meine Lösung:
Pietu1998's Lösung:
quelle
#
alternative Form war neu für mich.)Malbolge, 254 Zeichen, geknackt von Adnan
Code:
Ausgabe:
Ich habe ein bisschen geschummelt, indem ich für jedes 6. Zeichen ein Leerzeichen gesetzt habe. Naja...
Adnans geknackter Code:
Der ursprüngliche Code:
Ich habe erneut betrogen, indem ich einen Text-zu-Malbolge-Generator für diesen Code verwendet habe.
quelle
Mathematica 10.1, 98 Zeichen, sicher
Die Ausgabe erfolgt hier . Die gesamte Ausgabe enthält 838.316 Zeichen und eine nachgestellte Zeile.
Code:
Ja, dies muss in 10.1 ausgeführt werden. (Hinweis) Das ursprüngliche Programm:
quelle
MATL , 8 Zeichen, sicher
Eine stabile Version des Compilers, der in Octave arbeitet, wird hoffentlich bald verfügbar sein. In der Zwischenzeit funktioniert dieses GitHub-Commit und führt insbesondere den Originalcode aus, der die angegebene Ausgabe erzeugt
Dieser Beitrag gilt als veröffentlicht am 28. Dezember 2015, 15:30 UTC
Ausgabe:
Code (8 Zeichen):
Lösung
Was es macht:
quelle
Labyrinth , 5 Bytes, Gebrochen von Adnan
druckt
Mein ursprünglicher Code war:
Beachten Sie das nachfolgende Leerzeichen.
Ich nehme an, ich hätte mehr Charaktere haben sollen und eines davon enthüllen sollen
!
, weil Adnans Lösung nur linear wächst, wenn man mehr hinzufügt!
, während meine quadratisch wächst.quelle
PHP, 28 Zeichen
Gibt den String aus
quelle
ES6, 17 Zeichen, geknackt von Cᴏɴᴏʀ O'Bʀɪᴇɴ
Dies ist eine Funktion, die die Zeichenfolge zurückgibt
quelle
(i=106)=>i*i-3+''
JavaScript, 83 Zeichen, Gebrochen von Martin Büttner
Ausgabe
Code
Die Ausgabe erfolgt in der JS-Konsole eines Browsers wie Chrome / Firefox.
Originalcode ( möglicherweise ungültig):
quelle
Pyth, 6 Zeichen, geknackt von Pietu1998
Code:
Ausgabe:
Sie können Pyth hier ausprobieren
quelle
JavaScript ES6, 134 Zeichen
Huh Junge, das hat Spaß gemacht. Viel Glück!
Ausgänge:
quelle
CJam, 12 Zeichen, Gebrochen von Jimmy23013
Ausgabe
Code
quelle
Im Ernst , 7 Bytes, Gebrochen von Martin Büttner
Ausgabe:
Sollte nicht zu schwierig sein, auch wenn das Ergebnis nicht genau das ist, was Sie erwarten würden.
quelle
Python 3, 58 Zeichen, geknackt von Mitch Schwartz
Code:
Ausgabe:
quelle
Befunge, 11 Zeichen, geknackt (in Funge-98) von MegaTom
Ausgabe:
Verschleierter Code:
Alle eine Zeile, da die Regeln Zeilenumbrüche verbieten. Getestet mit http://www.quirkster.com/iano/js/befunge.html .
Bearbeiten: Dies ist legal geknackt, da ich keine Version angegeben habe, aber beachten Sie, dass es noch eine Befunge-93-Lösung gibt.
quelle
Perl 5, 30 Bytes, geknackt von Adnan
Code:
Ausgabe:
Gebrochen:
Adnan fand einen unbedeutenden Riss : Natürlich habe ich dieses Rätsel nicht gut genug durchdacht. Ich habe stattdessen einen anderen komponiert .
quelle
Python 2, 62 Zeichen, Cracked by Adnan
Es sieht irgendwie aus wie ein Tisch.
Dies gibt den String aus
abcde
.Adnans Code:
Mein Code:
quelle