Ceci est le fil des voleurs. Pour le fil des flics, allez ici .
introduction
Pour ce défi Cops / Robbers, les flics écriront des programmes de production de sortie et les entrelaceront ensemble. C'est le travail du voleur de sélectionner les programmes des flics pour produire les sorties souhaitées.
Règles de voleur
Les voleurs essaieront de trouver les différents programmes que les gens affichent dans les soumissions au fil des flics (lié ci-dessus). Si un voleur résout le code d'un flic, il doit publier les programmes séparés et les faire correspondre avec leurs sorties dans une réponse ici et signaler qu'il a craqué le code sur la réponse du flic.
Notation
Il y a deux composants qui sont ajoutés ensemble lors de la notation d'une soumission fissurée.
- 2 à la puissance du nombre de programmes différents utilisés dans la réponse du flic
- Autour du nombre d'octets dans le entrelaçant vers le bas à la puissance la plus proche de 2.
Par exemple, si un voleur se fissure TIliGoEnR
comme étant TIGER
et lion
, alors le voleur reçoit 2 ^ 2 + 8 = 12 points.
Le vainqueur du défi des voleurs sera la personne avec le plus de points après une période de temps suffisante pour que les gens participent.
(Qui veut aider avec un extrait?)
la source
BitShift , 2 ^ 2 + 64 = 68 points
fil de flics
impressions
! ?
impressions
? !
Code
J'ajouterai une description plus tard (diviser le code en parties qui impriment des parties individuelles)
la source
2^programs + 256/bytes=points
. Dans ce cas, c'est2^2 + 256/128=6 points
. Je pense que cela sera modifié, car comme c'est le cas actuellement, moins de programmes de comptage d'octets reçoivent un bonus plus élevé pour les voleurs. Qui se sentPHP , 68 points
Production:
Array
Production:
\^/\]co\[\$
J'aime cette soumission, car elle repose sur quelques fonctionnalités moins connues - on pourrait dire des défauts - de PHP. PHP permet d'attribuer des références de fonction aux variables, par exemple:
ferait exactement ce que vous attendez. Comme le ferait:
... sauf qu'il ne fait pas ce que vous pensez.
$f = pow
n'attribue pas de référence de fonction à$f
(cela aurait trop de sens, non?), mais plutôt la chaîne'pow'
. L'implication est que n'importe quelle chaîne peut être utilisée comme appel de fonction, si elle représente le nom d'une fonction définie. Mauvais code en attente de se produire. Je ne sais même pas pourquoi vous voulez permettre cela.Une autre faille de PHP est que les noms de fonction et les mots-clés ne respectent pas la casse. Je souhaite que je plaisantais. Alors
echo pow(2, 4)
,ECHO POW(2, 4)
etEcHo PoW(2,4)
sont tous fonctionnellement équivalents.La dernière erreur sur showcase est que chaque fois qu'un tableau est tapé comme une chaîne, comme pour l'impression, le résultat est toujours la chaîne incroyablement utile
Array
. Prenez un moment pour réfléchir au fait que quelqu'un l'a fait délibérément.Donc, dans le premier programme, @insertusernamehere construit la chaîne
stR_split
, cette chaîne est utilisée comme référence de fonction (qui, pour les raisons ci-dessus, fonctionne réellement), et le résultat, un tableau, est sorti.la source
Rubis , 68 points
Premier:
Seconde:
Il a suivi assez naturellement de travailler sur la fin, avec
putc
.la source
JavaScript, 68 points
Fil de flics
Premier programme
Production:
ffttff
Deuxième programme
Production:
1010
Entrelacement
la source
Java, 132 points
Fil de flics
Premier programme:
Deuxième programme:
Les premières sorties de programme
Hell0
et les secondes sorties de programmeBye!
la source
Javascript , 132 points
Programme 1
Programme 2
Ouf. C'était terrible.
Après beaucoup de débogage, j'ai découvert qu'après avoir appelé (certaines parties du) deuxième programme, il ne s'exécuterait plus. En effet, la variable globale
f
était toujours affectée. En raison de l'f
attribution, le try / catch n'a pas échouéObject.keys(f)
. Je ne sais pas si c'est une astuce sournoise ou involontaire mais cela m'a causé un mal de tête.De plus, je pense que la sortie du premier programme est spécifique à la plate-forme.
/../g
supprime tous les caractères sur ma machine, à cause de l'expression régulière.
qui signifie n'importe quel caractère./\../g
Cependant, en y échappant avec des œuvres, j'espère que quelqu'un pourra apporter plus de lumière à ce sujet. De plus, ma sortie est sujette à des erreurs d'arrondi, peut-être qu'une variable javascript globale peut changer cela?Production
Cela a été testé sur Chrome 46 (mon seul navigateur), Windows 7.
J'espère que c'est toujours une soumission valable, malgré la sortie différente
la source
JavaScript (ES6) , 68 points
Programme 1
Programme 2
Programmes entrelacés
Cela aurait été beaucoup plus difficile si le flic avait déchiré les mots clés. ;)
la source
PHP , 24 points
Programme 1
Programme 2
Programme 3
Testé avec http://sandbox.onlinephpfunctions.com/ .
la source
Python 2 , 320 points
la source