Ceci est le fil des flics. Le fil des voleurs va ici .
Écrivez un programme ou une fonction composé uniquement de caractères ASCII imprimables (à l'exclusion des tabulations et des sauts de ligne) qui génère au moins 5 caractères ASCII imprimables dans l'ordre croissant (de l'espace au tilde / 32 à 126). Les caractères peuvent être émis plusieurs fois, tant qu'ils sont adjacents les uns aux autres. Une seule nouvelle ligne de fin est acceptée. Vous devez fournir la sortie complète, et pour chaque 6 caractères de votre code, vous devez fournir un caractère dans votre code, à la position où il apparaît. Si votre code contient 5 caractères ou moins, vous ne devez révéler que la longueur. Vous ne devez pas révéler plus d'un caractère pour 6 dans votre code.
Donc, si votre code alphaprinter
sort l'alphabet de az, alors vous devez révéler 2 caractères de votre code (utilisez le soulignement pour les autres), par exemple:
al__________ // or
__p__p______ // or
__________er
Règles / spécifications:
- Vous ne pouvez pas ajouter d'espaces blancs à la fin qui n'ont pas de fonction.
- Vous ne pouvez pas utiliser de commentaires (mais les voleurs peuvent utiliser des commentaires lors du crack du code)
- Les primitives cryptographiques intégrées (y compris tout rng, chiffrement, déchiffrement et hachage) ne sont pas autorisées.
- Dans les langues où la sortie par défaut est comme dans MATLAB:,
ans =
alors cela est accepté, tant qu'il est clairement indiqué et montré qu'ilans =
est sorti. Il convient également d'indiquer clairement si cela fait partie de la "production ascendante" ou non. - La sortie doit être déterministe
- L'utilisation d'une langue non libre n'est pas acceptée
- La sortie ne doit pas nécessairement être composée de caractères consécutifs. Les deux
abcde
etabcdg
sont des sorties valides. - Les caractères n'ont pas besoin d'être distincts tant que la sortie contient au moins 5 caractères.
aaaaa
etaaacc
sont valides. - Les réponses qui supposent un environnement REPL ne sont pas considérées comme des programmes ou des fonctions valides et ne sont donc pas autorisées.
- STDERR n'est pas considéré comme une sortie valide, mais les données peuvent être écrites dans STDERR.
Si les caractères révélés sont des traits de soulignement, vous devez l'identifier comme indiqué ci-dessous. Dans ce cas, les deuxième et sixième caractères sont soulignés, tandis que les autres sont inconnus.
_____________
| |
Remarque: Les voleurs n'ont qu'à trouver un code qui produit la même sortie. La langue, la longueur de la solution des voleurs et la position des personnages révélés doivent également correspondre.
Votre score est le nombre de caractères dans votre code. Le gagnant sera la soumission avec le score le plus bas qui n'a pas été cracké en 7 jours. Seules les soumissions publiées en 2015 (UTC) sont éligibles pour la victoire. Les soumissions postées plus tard sont les bienvenues, mais ne peuvent pas gagner.
Afin de réclamer le gain, vous devez révéler le code complet (après 7 jours).
Votre message doit être formaté comme ceci (nn est le nombre de caractères):
Langue, nn caractères
Sortie:
abcdefghijklmnopqrstuvwxyz
Code (12 caractères):
al__________
Si le code est cracké, insérez [Cracked] (lien vers le cracker) dans l'en-tête. Si la soumission est sûre, insérez «Sûr» dans l'en-tête et révélez le code complet dans votre réponse. Seules les réponses qui ont révélé le code complet seront éligibles pour le gain.
la source
print ( "abcde" )
, je peux révéler trois espaces blancs?Réponses:
Hexagonie , 8 caractères, coffre-fort
impressions
Vous pouvez essayer Hexagony en ligne
Solution
Il
`
s'agit simplement d'une mauvaise direction pour donner au code l'impression qu'il nécessite une longueur de côté 3. À moins que l'interpréteur ne soit exécuté avec-d
le backtick, il est simplement supprimé du code source avant de déterminer la disposition. Ensuite, le code s'inscrit dans la longueur latérale 2:Cela déplace le pointeur de mémoire (MP) autour d'un hexagone de la grille de mémoire, tout en copiant la valeur sur le bord suivant, en l'incrémentant et en l'imprimant.
Voici à quoi ressemble la grille de mémoire, le MP commençant la position marquée:
Initialement, tous les bords sont nuls. Le premier
&
est un no-op, mais)
incrémente le bord et!
imprime le1
. Puis"
se déplace vers la gauche (le bord marqué 2 ). Là,&
copie une valeur. Puisque le bord est actuellement nul, le voisin gauche (dans le sens du MP) sera copié qui est celui que1
nous venons d'imprimer.)
l'incrémente,!
imprime le2
. Cela continue tant que nous visitons de nouveaux bords et que nous imprimons tous les chiffres jusqu'à6
. Lorsque nous atteignons le bord sur lequel nous avons commencé,&
copiera le bon voisin à la place (car la valeur du bord est positive), de sorte que le bord redevient0
et le flux de contrôle passe à la dernière ligne, où@
termine le programme.Essayez-le en ligne.
la source
123456
, mais cela n'arrête pas de courir et doit être tué. Est-ce permis?Perl, 46 caractères (sûr)
Sortie:
Code:
J'ai réussi à supprimer l'original en l'espace d'une semaine, mais je pense que c'est vrai:
la source
Brainfuck, 48 personnages, cracké par Mitch Schwartz
J'ai fait celui-ci pour les voleurs. Ce ne sera certainement pas la soumission gagnante :)
Cela produit:
Solution:
Je l'ai testé ici .
Astuce: N'essayez pas de trouver des programmes générés par des générateurs en ligne haha. Cela a été écrit à la main et ne peut être résolu que par une pensée logique :)
la source
CJam, 13 caractères
impressions
Vous pouvez essayer CJam en ligne.
Solution
Je pensais que baser un flic sur une quine généralisée était assez intelligent et nouveau. Au moment où j'ai posté cela, je l'ai réalisé
__
et je suiser
complètement inutile, c'est pourquoi j'ai posté le flic CJam de 8 octets pour un score plus compétitif. Pietu l'a craqué assez rapidement, donc j'avais peur qu'il le comprenne aussi. Je suppose que la translittération de caractères inutilement alambiquée l'a sauvé.Quoi qu'il en soit, le code prend ses propres caractères (sauf le
_~
), XORs chacun avec 19 pour obscurcissement puis les trie.Ce flic m'a conduit à la "découverte" du xorting , bien que je ne l'utilise pas ici (et il serait probablement presque impossible de l'utiliser avec une courte quine généralisée).
la source
3SP bruyant , 89 caractères (sûr)
Programme original:
Ce programme imprime
(notez l'espace principal), et rien d'autre!
Explication (* n fait référence à la nième cellule en mémoire):
Les deux dernières commandes s'avèrent suffisantes pour empêcher 1 d'être incrémenté à nouveau lors des passages ultérieurs du programme, ce qui signifie que rien ne sera plus imprimé, bien qu'il continuera à définir toutes les adresses mémoire de * 36 à la valeur 36 pour toujours .
la source
an esolang in which structured programming is impossible and every program has to be written from scratch.
0_0 plus un de moi.This is probably not that language
. Si vous vous asseyez et essayez d'écrire un programme qui donne cette sortie, vous obtiendrez probablement quelque chose de très similaire.JavaScript (ES6), 60 caractères, fissuré par l'utilisateur 81655
Pas prometteur de gagner, mais j'espère que c'est amusant de craquer:
Il s'agit d'une fonction qui renvoie:
modifier
user81655 l'a craqué caractère par caractère:
la source
MatlabOctave, 27 caractères, coffre-fortDéfi
Concernant les nouvelles restrictions de langue: Il fonctionne également dans Octave.
Sortie (en octave): (
ans =
ne fait pas partie de la sortie, le premier caractère de la sortie est"
)Sortie (dans Matlab): (
ans = \n\n
ne fait pas partie de la sortie, la sortie n'est que la dernière ligne)Solution
la source
It also works in Octave.
R, 60 octets, fissuré par plannapus
Sortie:
Code:
Je pense que ce ne sera pas si difficile. Nous verrons.
la source
Jolf , 27 personnages, fissuré par Adnan
impressions
Interprète .
Code d'origine:
Félicitations à Adnan! Tu me fais peur.
Ici, vous pouvez tester votre soumission, pour voir combien de caractères doivent être supprimés.
la source
Fortran, 45 caractères, coffre-fort
Sortie complète:
Le chat a tenté de le casser ici
Code (45 caractères):
Code du programme:
la source
/
!PHP, 46 caractères, sûr
La source:
Produit une chaîne de 84 caractères:
Allusion
Code révélé
la source
CJam, 8 octets, fissuré par Pietu1998
impressions
Vous pouvez essayer CJam en ligne .
la source
05AB1E , 13 caractères, craqué par la quintopie
Je suis un idiot. J'ai oublié d'implémenter la fonction de puissance (-_-。). Voici le code obscurci:
Mon code d'origine était:
Explication:
Cela produira:
Oui, c'est 99 zéros suivis d'un 1.
Remarque , j'ai une fonction d'alimentation implémentée en ce moment. Cela pourrait donc se faire en six octets:
la source
"4"3*
= 12)Python 3.4, 127 caractères
Ceci est mon premier poste de cuivre. Je pense / j'espère que ce n'est pas trop difficile ou trop évident.
Le code obscurci:
crée cette sortie (il y a 5 espaces au début; la longueur totale est de 7740 caractères):
la source
Pyth, 17 caractères, craqué par Pietu1998
Sortie:
Code:
Ma solution:
La solution de Pietu1998:
la source
#
forme alternative était nouvelle pour moi.)Malbolge, 254 personnages, cracké par Adnan
Code:
Sortie:
J'ai un peu triché en mettant un espace pour chaque 6ème personnage. Tant pis...
Code cracké d'Adnan:
Le code d'origine:
J'ai de nouveau triché en utilisant un générateur text-to-Malbolge pour ce code.
la source
Mathematica 10.1, 98 caractères, sûr
La sortie est ici . La sortie entière a 838 316 caractères et une nouvelle ligne de fin.
Code:
Oui, cela doit être exécuté dans 10.1. (indice) Le programme original:
la source
MATL , 8 caractères, sûr
Une version stable du compilateur fonctionnant dans Octave devrait bientôt arriver. Pendant ce temps, cette validation GitHub fonctionne , et en particulier exécute le code d'origine qui produit la sortie indiquée
Cette soumission compte comme publiée le 28 décembre 2015, 15:30 UTC
Sortie:
Code (8 caractères):
Solution
Ce qu'il fait:
la source
Labyrinthe , 5 octets, fissuré par Adnan
impressions
Mon code d'origine était:
Notez l'espace de fin.
Je suppose que j'aurais dû opter pour plus de personnages et en révéler un
!
, car la solution d'Adnan ne se développe que linéairement lors de l'ajout de plus!
, tandis que la mienne croît de manière quadratique.la source
PHP, 28 caractères
Sort la chaîne
la source
ES6, 17 caractères, craqué par Cᴏɴᴏʀ O'Bʀɪᴇɴ
Il s'agit d'une fonction qui renverra la chaîne
la source
(i=106)=>i*i-3+''
JavaScript, 83 caractères, cracké par Martin Büttner
Sortie
Code
La sortie est dans la console JS d'un navigateur comme Chrome / Firefox.
Code d'origine (qui peut être invalide):
la source
Pyth, 6 caractères, craqué par Pietu1998
Code:
Sortie:
Vous pouvez essayer Pyth ici
la source
JavaScript ES6, 134 caractères
Huh boy, c'était amusant. Bonne chance!
Les sorties:
la source
CJam, 12 caractères, fissuré par jimmy23013
Sortie
Code
la source
Sérieusement , 7 octets, fissuré par Martin Büttner
Sortie:
Cela ne devrait pas être trop difficile, même si le résultat n'est pas exactement ce que vous attendez.
la source
Python 3, 58 caractères, cracké par Mitch Schwartz
Code:
Sortie:
la source
Befunge, 11 personnages, craquelé (en funge-98) par MegaTom
Sortie:
Code obscurci:
Une seule ligne, car les règles interdisent les sauts de ligne. Testé à l'aide de http://www.quirkster.com/iano/js/befunge.html .
Edit: Ceci est légalement fissuré car je n'ai pas spécifié de version, mais notez qu'il existe toujours une solution Befunge-93.
la source
Perl 5, 30 octets, craqué par Adnan
Code:
Sortie:
Fissuré:
Adnan a trouvé une fissure triviale : évidemment, je n'ai pas assez bien réfléchi à ce puzzle. J'en ai composé un autre à la place.
la source
Python 2, 62 caractères, fissuré par Adnan
Cela ressemble un peu à une table.
Cela génère la chaîne
abcde
.Code d'Adnan:
Mon code:
la source