Das ist der Räuberfaden. Für den Faden Cops gehen hier .
Einführung
Für diese Cops / Robbers-Herausforderung schreiben die Cops Output-produzierende Programme und verweben sie miteinander. Es ist die Aufgabe des Räubers, die Programme der Polizisten herauszusuchen, um die gewünschten Ergebnisse zu erzielen.
Räuberregeln
Die Räuber werden versuchen, die verschiedenen Programme zu finden, die die Leute in Einsendungen an den Cops-Thread posten (oben verlinkt). Wenn ein Räuber den Code eines Polizisten löst, muss er die getrennten Programme veröffentlichen und sie mit ihren Ausgaben in einer Antwort hier abgleichen und angeben, dass er den Code in der Antwort des Polizisten geknackt hat.
Wertung
Es gibt zwei Komponenten, die beim Bewerten einer geknackten Einreichung zusammenaddiert werden.
- 2 hoch der Anzahl der verschiedenen Programme, die in der Antwort des Polizisten verwendet wurden
- Rund um die Anzahl von Bytes in der Verwebung nach unten auf die nächste Potenz von 2.
ZB wenn ein Räuber TIliGoEnR
als TIGER
und bricht lion
, dann erhält der Räuber 2 ^ 2 + 8 = 12 Punkte.
Der Gewinner der Räuberherausforderung ist die Person mit den meisten Punkten nach einer ausreichenden Zeitspanne, damit die Teilnehmer teilnehmen können.
(Wer will mit einem Schnipsel helfen?)
quelle
BitShift , 2 ^ 2 + 64 = 68 Punkte
Polizisten Faden
druckt
! ?
druckt
? !
Code
Ich werde später eine Beschreibung hinzufügen (den Code in die Teile aufteilen, die einzelne Teile drucken)
quelle
2^programs + 256/bytes=points
. In diesem Fall ist es2^2 + 256/128=6 points
. Ich denke jedoch, dass dies geändert werden wird, da Programme mit weniger Byteanzahl derzeit einen höheren Bonus für Räuber erhalten. Was sich nicht gut anfühltPHP , 68 Punkte
Ausgabe:
Array
Ausgabe:
\^/\]co\[\$
Ich mag diese Einreichung, weil sie auf ein paar weniger bekannten Funktionen - man könnte sagen, Fehlfunktionen - von PHP beruht . Mit PHP können Funktionsreferenzen Variablen zugewiesen werden, zum Beispiel:
würde genau das tun, was Sie erwarten. Als würde:
... außer es tut nicht was du denkst.
$f = pow
ordnet keine Funktionsreferenz zu$f
(das wäre doch zu sinnvoll?), sondern die Zeichenfolge'pow'
. Dies impliziert, dass eine beliebige Zeichenfolge als Funktionsaufruf verwendet werden kann, wenn sie den Namen einer definierten Funktion darstellt. Schlechter Code, der darauf wartet, passiert zu werden. Ich weiß nicht mal, warum du das zulassen willst .Ein weiteres Manko von PHP ist, dass bei Funktionsnamen und Schlüsselwörtern die Groß- und Kleinschreibung nicht beachtet wird. Ich wünschte, ich würde scherzen. So
echo pow(2, 4)
,ECHO POW(2, 4)
undEcHo PoW(2,4)
sind alle funktional gleichwertig.Der letzte Fehler bei showcase ist, dass immer dann, wenn ein Array als Zeichenfolge eingegeben wird, beispielsweise zum Drucken, das Ergebnis die erstaunlich hilfreiche Zeichenfolge ist
Array
. Nehmen Sie sich einen Moment Zeit, um über die Tatsache nachzudenken, dass jemand dies tatsächlich absichtlich getan hat.Im ersten Programm baut @insertusernamehere die Zeichenfolge auf
stR_split
, diese Zeichenfolge wird als Funktionsreferenz verwendet (was aus den oben genannten Gründen tatsächlich funktioniert), und das Ergebnis, ein Array, wird ausgegeben.quelle
Rubin , 68 Punkte
Zuerst:
Zweite:
Es folgte ziemlich natürlich aus der Erarbeitung des Endes mit
putc
.quelle
JavaScript, 68 Punkte
Polizisten Faden
Erstes Programm
Ausgabe:
ffttff
Zweites Programm
Ausgabe:
1010
Verflechtung
quelle
Java, 132 Punkte
Polizisten Faden
Erstes Programm:
Zweites Programm:
Die ersten Programmausgaben
Hell0
und die zweiten ProgrammausgabenBye!
quelle
Javascript , 132 Punkte
Programm 1
Programm 2
Wütend. Das war schrecklich.
Nach vielem Debuggen habe ich herausgefunden, dass es nach dem Aufrufen (von Teilen) des 2. Programms nicht mehr laufen würde. Dies liegt daran, dass die globale Variable
f
noch zugewiesen wurde. Aufgrund derf
Zuweisung ist der Versuch / Fang nicht fehlgeschlagenObject.keys(f)
. Ich weiß nicht, ob dies ein hinterhältiger Trick ist oder nicht, aber es hat mir Kopfschmerzen bereitet.Ich glaube auch, dass die Ausgabe des ersten Programms plattformspezifisch ist.
/../g
Entfernt alle Zeichen auf meinem Computer, aufgrund des regulären Ausdrucks,.
der ein beliebiges Zeichen bedeutet. Austretende es mit/\../g
Werken aber, ich hoffe jemand mehr Licht auf diese werfen kann. Außerdem neigt meine Ausgabe zu Rundungsfehlern. Vielleicht kann eine globale Javascript-Variable dies ändern?Ausgabe
Dies wurde auf Chrome 46 (meinem einzigen Browser), Windows 7 getestet.
Ich hoffe, dass dies trotz der unterschiedlichen Ausgabe immer noch eine gültige Einsendung ist
quelle
JavaScript (ES6) , 68 Punkte
Programm 1
Programm 2
Verflochtene Programme
Das wäre viel schwieriger gewesen, hätte der Polizist die Stichwörter auseinandergerissen. ;)
quelle
PHP , 24 Punkte
Programm 1
Programm 2
Programm 3
Getestet mit http://sandbox.onlinephpfunctions.com/ .
quelle
Python 2 , 320 Punkte
quelle