Cela fait partie d'un défi des flics et des voleurs . Allez ici pour la partie des voleurs.
Le défi des flics
Vous devez écrire un programme ou une fonction dans la langue de votre choix, qui génère la chaîne Haystack
. Cependant, il doit être possible de supprimer un sous-ensemble de caractères de votre programme (sans réorganiser le reste), de sorte que la chaîne résultante soit également un programme valide dans la même langue, qui sera imprimé à la Needle
place. Les deux programmes / fonctions peuvent éventuellement imprimer une nouvelle ligne de fin (indépendamment l’une de l’autre), mais rien d’autre. La sortie est sensible à la casse et doit suivre exactement le boîtier fourni.
Votre objectif, bien sûr, est de très bien cacher l’aiguille. Mais notez que votre soumission peut être fissurée avec n'importe quelle solution valide, pas seulement celle que vous vouliez.
S'il vous plaît inclure dans votre réponse:
- La langue (et la version, le cas échéant) de votre soumission.
- La taille du programme Haystack en octets.
- Le programme Haystack lui-même.
- La méthode de sortie si ce n'est pas STDOUT.
- Si possible, un lien vers un interprète / compilateur en ligne pour la langue de votre choix.
Votre soumission peut être un programme ou une fonction, mais pas un extrait et vous ne devez pas assumer un environnement REPL. Vous ne devez prendre aucune entrée et vous pouvez sortir via STDOUT, une valeur de retour de fonction ou un paramètre de fonction (out).
Les deux programmes / fonctions doivent être terminés en moins de 5 secondes sur un ordinateur de bureau raisonnable et doivent être déterministes. Vous ne devez pas utiliser les fonctions intégrées pour le hachage, le chiffrement ou la génération de nombres aléatoires (même si vous générez le générateur de nombres aléatoires à une valeur fixe).
Dans un souci d'équité, il doit exister un interprète ou un compilateur librement disponible pour la langue de votre choix.
Une réponse est fissurée si le programme Needle est trouvé. Si votre réponse n'a pas été fissurée pendant 7 jours, vous pouvez indiquer le programme Needle prévu dans votre réponse, ce qui sécurise votre soumission. Tant que vous ne révélez pas votre solution, les voleurs peuvent la craquer, même si les 7 jours sont déjà écoulés. Le programme Haystack sûr le plus court (mesuré en octets) gagne.
Exemples
Voici quelques exemples simples dans différentes langues:
Ruby
Haystack: puts 1>0?"Haystack":"Needle"
Delete: XXXXXXXXXXXXXXX
Needle: puts "Needle"
Python 2
Haystack: print "kcatsyaHeldeeN"[-7::-1]
Delete: XXXXXXXX XX
Needle: print "eldeeN"[::-1]
Notez que le sous-ensemble de caractères supprimés ne doit pas nécessairement être contigu.
Soumissions non fissurées
<script>site = 'meta.codegolf'; postID = 5686; isAnswer = false; QUESTION_ID = 144600;</script><script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script><script>jQuery(function(){var u='https://api.stackexchange.com/2.2/';if(isAnswer)u+='answers/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJeRCD';else u+='questions/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJO6t)';jQuery.get(u,function(b){function d(s){return jQuery('<textarea>').html(s).text()};function r(l){return new RegExp('<pre class="snippet-code-'+l+'\\b[^>]*><code>([\\s\\S]*?)</code></pre>')};b=b.items[0].body;var j=r('js').exec(b),c=r('css').exec(b),h=r('html').exec(b);if(c!==null)jQuery('head').append(jQuery('<style>').text(d(c[1])));if (h!==null)jQuery('body').append(d(h[1]));if(j!==null)jQuery('body').append(jQuery('<script>').text(d(j[1])))})})</script>
la source
Réponses:
Meule de foin , 84 octets, fissurée
Essayez-le en ligne!
Cela me semble assez compliqué, mais si vous trouvez le bon sous-ensemble, c'est un peu trop facile ... bon, juste pour commencer: P
la source
Hexagonie , 37 octets
Essayez-le en ligne!
Juste mon entrée obligatoire en hexagone ...
Pour plus de commodité, voici le code non plié:
Comment ça marche:
Le programme commence par
H
, puis nous passons à IP # 5. Cette adresse IP commence dans le coin ouest, rebondissant et bouclant lors de l'exécution (en fait);a;y;s;
(donc nous l'avons impriméeHays
). Ensuite , nous obtenonss
incrémentét
par un)
et imprimé, puis nous passonsNe...(c
avant d’atteindrea;c;
(toujours rebondissant autour d’une petite partie de l’hexagone). Le programme touche le_
, reflète à travers\
àl
qui obtient décrémenté à unk
par(
, qui passe par une autre\
avant d' être imprimé et le programme se termine de la sur@
.Version verbeuse
Afficher l'extrait de code
la source
Brain-Flak , 146 octets ( fissuré )
Essayez-le en ligne!
Solution prévue, 80 octets
la source
JavaScript, 95 octets (ES6), fissuré
Une fonction renvoyant une chaîne.
Démo "Haystack"
Afficher l'extrait de code
la source
Haskell , 168 bytes ( Fissuré par nimi )
Essayez-le en ligne! L' évaluation l'identificateur
h
renvoie la chaîne"Haystack"
, après quelques suppressions desh
rendements"Needle"
.la source
Gelée , 41 octets ( fissuré )
Essayez-le en ligne!
Bonne chasse!
la source
Hexagone , 32 octets.Fissuré
Je ne pouvais pas résoudre Martin , alors je poste le mien.
Essayez-le en ligne!
Ici, il est formaté:
Mon objectif avec ceci était que les deux solutions utilisent autant d'adresses IP que possible, j'en ai 6 pour Needle et seulement 5 pour Haystack .
la source
Pyth , 44 octets ( fissuré )
Essayez ici.
la source
Java (OpenJDK 8) ,
226217 octets ( fissuré )Premier golf de code, probablement très facile mais c'était un défi amusant!
Essayez-le en ligne!
la source
return new Main().d();
enSystem.out.print(new Main().d());
dans la méthode principale.dc , 148 octets ( fissuré )
Essayez-le en ligne!
C'est assez simple, mais j'espère que ce sera au moins un peu amusant à résoudre: з
la source
JavaScript, 119 octets (ES6), fissuré
Une fonction renvoyant une chaîne. Assez long et pas si difficile, mais heureusement amusant.
Démo "Haystack"
Afficher l'extrait de code
la source
Python 2.7.2, 103/117 octets, fissuré
Version de la fonction (117 octets):
Version du programme (103 octets):
Cela devrait
Haystack
bien imprimer . Testé sur Python Fiddle .Btw c'est la première tentative.
Vous ne savez pas si la version du programme est considérée comme un extrait, je mets donc les deux versions ici.
la source
Python 2.7.10 avec Numpy 1.12.1,
208209 octets ( fissuré) )Il semble qu’il existe une aiguille et une botte de foin dans Numpy! Voici la botte de foin; voyez si vous pouvez trouver l'aiguille. J'espère que vous aurez autant de plaisir à chercher l'aiguille que de le cacher.
Il produit comme spécifié:
Vous pouvez repl.it .
la source
Java 8, 321 octets, fissuré
Essayez ici.
Plus lisible:
Je ne suis pas sûr que ce soit trop long / dur .. Encore une fois, Java en général est assez long pour commencer, donc cacher l’Aiguille correctement augmente bien sûr le nombre d’octets.
Si personne ne le craque, j ' Ajoutez plus tard quelques astuces spoiler.
la source
Ruby , 185 octets, fissuré par cab404
Essayez-le en ligne!
Je vais essayer de trouver quelque chose de sournois, mais pour l’instant, voici un essai de «simple mais odieux».
la source
Brain-Flak, 188 bytes (Cracked)
I only just saw Funky Computer Man's answer As I posted this.
It is somewhat obfuscated.
Try it online!
Intended solution, 96 bytes:
Try it online!
la source
T-SQL, 757 characters CRACKED
Apologies for deleting my previous answer--I edited it too many times as I obfuscated, and didn't want to give anything away. :)
In any case, obfuscating in SQL is a bit difficult, unless you want to do crazy stuff like this, and I wasn't that invested.
Also, I unabashedly do not apologize for naming my variables after Dota.
SQL Fiddle
If this is the easiest answer in this thread, you're probably right. :P It's hard to trick SQL.
la source
Ly, 40 bytes, cracked
Try it online!
Oh boy, another Ly CNR submission. These haven't worked very well historically (possibly due to me and not the language),
but we'll see how this faresand today is no exception.Solution:
la source
Java, 345 bytes, Cracked
Try it online!
Really long and probably easy to crack, but at least it's got a
Stack<Hay>
!la source
TI-BASIC, 119 bytes (Safe)
Output stored in
Ans
.Solution
Remove characters from
Str1
to give it a length of 1.la source
PHP, 44 bytes, Cracked
fairly easy to crack; but I like it.
Run with
-nr
or try it online.la source
Aceto, 154 bytes (Safe)
Try it online!
la source