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>