36
\$\begingroup\$

Note: This challenge is finished. Submissions are still welcome but can not win.

This is the cops' thread. The robbers' thread goes here.

Write a code that outputs the integer 1. If you add, remove or substitute a single character (of your choosing), the code should output the integer 2. Change one more character (the same or another), and the code should output 3. Continue like this as far as you can, but maximum up to 10. Default output formats such as ans = 1 are accepted. You can ignore output to STDERR (or equivalent).

You must reveal the language, byte count of your initial code, the number of integers it works for, as well as an optional number of characters of the initial code. Note: You don't have to reveal any characters, but remember that revealing characters might make it harder for the robbers as they must use the same character in the same position. You can choose which character you use to denote unrevealed characters (for instance underscore), but make sure to specify this.

Cops can provide the uncracked code after one week and call the submission "SAFE". The winning submission will be the shortest uncracked submission that produces the number 10. If no uncracked submissions are able to print 10, the shortest code that produces 9 will win, and so on. Note that the robbers don't have to make the same changes as you do, and they don't have to reproduce the exact code (unless you reveal all characters). They must only reproduce the output.

Submissions posted later than November 24th are welcome but not eligible for the win (because there will likely be fewer robbers around).


Example post:

The following post is a submission in the language MyLang, it is 9 bytes long, and it works for numbers 1 - 8.

MyLang, 9 bytes, 8 numbers

This submission works for 1 - 8. Unrevealed characters are indicated with an underscore: _.

abc____i

Leaderboard

Disclaimer: The leaderboard is not tested and uncracked submissions might not appear in the list.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><style>table th,table td{padding: 5px;}th{text-align: left;}.score{text-align: right;}table a{display: block;}.main{float: left;margin-right: 30px;}.main h3,.main div{margin: 5px;}.message{font-style: italic;}#api_error{color: red;font-weight: bold;margin: 5px;}</style> <script>QUESTION_ID=99546;var safe_list=[];var uncracked_list=[];var n=0;var bycreation=function(x,y){return (x[0][0]<y[0][0])-(x[0][0]>y[0][0]);};var byscore=function(x,y){return (x[0][1]>y[0][1])-(x[0][1]<y[0][1]);};function u(l,o){jQuery(l[1]).empty();l[0].sort(o);for(var i=0;i<l[0].length;i++) l[0][i][1].appendTo(l[1]);if(l[0].length==0) jQuery('<tr><td colspan="3" class="message">none yet.</td></tr>').appendTo(l[1]);}function m(s){if('error_message' in s) jQuery('#api_error').text('API Error: '+s.error_message);}function g(p){jQuery.getJSON('//api.stackexchange.com/2.2/questions/' + QUESTION_ID + '/answers?page=' + p + '&pagesize=100&order=desc&sort=creation&site=codegolf&filter=!.Fjs-H6J36w0DtV5A_ZMzR7bRqt1e', function(s){m(s);s.items.map(function(a){var he = jQuery('<div/>').html(a.body).children().first();he.find('strike').text('');var h = he.text();if (!/cracked/i.test(h) && (typeof a.comments == 'undefined' || a.comments.filter(function(b){var c = jQuery('<div/>').html(b.body);return /^cracked/i.test(c.text()) || c.find('a').filter(function(){return /cracked/i.test(jQuery(this).text())}).length > 0}).length == 0)){var m = /^\s*((?:[^,;(\s]|\s+[^-,;(\s])+).*(0.\d+)/.exec(h);var e = [[n++, m ? m[2]-0 : null], jQuery('<tr/>').append( jQuery('<td/>').append( jQuery('<a/>').text(m ? m[1] : h).attr('href', a.link)), jQuery('<td class="score"/>').text(m ? m[2] : '?'), jQuery('<td/>').append( jQuery('<a/>').text(a.owner.display_name).attr('href', a.owner.link)) )];if(/safe/i.test(h)) safe_list.push(e);else uncracked_list.push(e);}});if (s.items.length == 100) g(p + 1);else{var s=[[uncracked_list, '#uncracked'], [safe_list, '#safe']];for(var i=0;i<2;i++) u(s[i],byscore);jQuery('#uncracked_by_score').bind('click',function(){u(s[0],byscore);return false});jQuery('#uncracked_by_creation').bind('click',function(){u(s[0],bycreation);return false});}}).error(function(e){m(e.responseJSON);});}g(1);</script><link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/Sites/codegolf/all.css?v=7509797c03ea"><div id="api_error"></div><div class="main"><h3>Uncracked submissions</h3><table> <tr> <th>Language</th> <th class="score">Score</th> <th>User</th> </tr> <tbody id="uncracked"></tbody></table><div>Sort by: <a href="#" id="uncracked_by_score">score</a> <a href="#" id="uncracked_by_creation">creation</a></div></div><div class="main"><h3>Safe submissions</h3><table> <tr> <th>Language</th> <th class="score">Score</th> <th>User</th> </tr> <tbody id="safe"></tbody></table></div>

\$\endgroup\$
  • \$\begingroup\$ Not sure I understand... given an arbitrary code in CJam that produces 1, how can I prevent the robbers from adding ) repeatedly to generate the rest of the numbers? The same would be valid for quite a few languages \$\endgroup\$ – Luis Mendo Nov 12 '16 at 12:48
  • 2
    \$\begingroup\$ If that's possible for any program that outputs 1 then it appears CJam is a bad choice of language for this challenge. There's no way to prevent robbers from doing that. \$\endgroup\$ – Stewie Griffin Nov 12 '16 at 12:50
  • 3
    \$\begingroup\$ @LuisMendo Well, it will certainly make this more interesting... \$\endgroup\$ – LegionMammal978 Nov 12 '16 at 12:58
  • 1
    \$\begingroup\$ @DanielJour It can be modifiable up to any number, but the maximum number the robbers need to find is 10. That rule is in place because many submissions can probably be extended to infinity (in theory), so scoring based on the highest achieved number wouldn't make sense. \$\endgroup\$ – Stewie Griffin Nov 13 '16 at 16:25
  • 1
    \$\begingroup\$ You may want to try only disqualifying an entry if the header contains cracked in some form. This is what the redesign userscript currently does. \$\endgroup\$ – ETHproductions Nov 15 '16 at 20:51

88 Answers 88

2
\$\begingroup\$

Acc!!, 10 bytes, 9 numbers, cracked

?????????_

Works for 1 to 9. ? is a hidden character.

\$\endgroup\$
  • \$\begingroup\$ Interesting one. Cracked here \$\endgroup\$ – Dada Nov 12 '16 at 21:43
2
\$\begingroup\$

Octave, 26 bytes, 10 numbers. Cracked

__a__repmat(_+one___1+__))

_ is a hidden char.

New variation...


The intended solution was:

>> eval(repmat('+ones',1+''))
ans =  1

>> eval(repmat('+ones',1+2'))
ans =  3

>> eval(repmat('+ones',1+9'))
ans =  10
\$\endgroup\$
  • \$\begingroup\$ cracked but probably again nowhere close to what you intended=) \$\endgroup\$ – flawr Nov 13 '16 at 11:08
  • \$\begingroup\$ @flawr I have updated with my solution \$\endgroup\$ – Luis Mendo Nov 13 '16 at 14:50
  • \$\begingroup\$ This will be my last (and hopefully best one). \$\endgroup\$ – Stewie Griffin Nov 13 '16 at 16:20
  • 1
    \$\begingroup\$ @Stewie Looks difficult! That is, funny :-) \$\endgroup\$ – Luis Mendo Nov 13 '16 at 17:13
2
\$\begingroup\$

Python 2, 17 bytes, 10 numbers, cracked

print len([????])

The hidden character is ?.

\$\endgroup\$
  • \$\begingroup\$ Cracked \$\endgroup\$ – Jonathan Allan Nov 13 '16 at 21:34
  • \$\begingroup\$ Nice, that was fast. \$\endgroup\$ – xnor Nov 13 '16 at 21:34
  • \$\begingroup\$ ...and the intended crack?! \$\endgroup\$ – Jonathan Allan Nov 13 '16 at 21:35
  • 1
    \$\begingroup\$ Yes, it's what I had in mind. \$\endgroup\$ – xnor Nov 13 '16 at 21:35
2
\$\begingroup\$

Pyth, 4 bytes, 9 numbers - Cracked

.__Q

Not super difficult, but should hopefully be fun.

\$\endgroup\$
  • \$\begingroup\$ Cracked :) \$\endgroup\$ – Adnan Nov 13 '16 at 17:23
2
\$\begingroup\$

Octave, 21 bytes, 10 numbers, Cracked

disp(fpr___f__e_(_'_)

This works for 1-10. _ are hidden characters. This will be my last and hopefully best post.

Intended solution:

disp(fpr= -fopen('')) and disp(fpr=1-fopen('')) for 2...10

Explanation:

disp(fprintf('_')) will actually print _1 if executed, so fpr___f was chosen to throw people off. The f was needed in fopen so there was only one additional space. fopen('') returns -1 since it fails to open a file with an empty name. fpr= -fopen('') makes fpr = 1.

\$\endgroup\$
  • \$\begingroup\$ Last? Forever? For all of PPCG? \$\endgroup\$ – noɥʇʎԀʎzɐɹƆ Nov 14 '16 at 3:26
  • 1
    \$\begingroup\$ Are you sure nothing is missing here? What fpr is is quite obvious, that leaves four spots, that each need a closing parenthesis. \$\endgroup\$ – flawr Nov 14 '16 at 12:31
  • \$\begingroup\$ Nevermind, cracked (but is this what you had in mind??) \$\endgroup\$ – flawr Nov 14 '16 at 12:39
  • 1
    \$\begingroup\$ Oooh, the fopen is neat=) \$\endgroup\$ – flawr Nov 14 '16 at 12:51
  • \$\begingroup\$ @flawr. thanks :) I like the sequence you found too :) \$\endgroup\$ – Stewie Griffin Nov 14 '16 at 12:57
2
\$\begingroup\$

Hexagony, 7 bytes, 10 numbers, Cracked

1<@|!__

Works for 1 to 10, _ are hidden characters. I hope I didn't overlook any cheap way to work around the intended solution (I'm looking forward to clever ways to work around the intended solution ;)).

You can try Hexagony online over here.

\$\endgroup\$
  • \$\begingroup\$ Cracked \$\endgroup\$ – Riley Nov 14 '16 at 18:05
  • \$\begingroup\$ @Riley Wow, that was fast (and that's more or less the intended solution; I had _! for the wild cards and inserted the ) for 10). \$\endgroup\$ – Martin Ender Nov 14 '16 at 18:10
  • \$\begingroup\$ So 1 would be 1<@|!_! and 10 is 9<@|!_!(? That doesn't seem to work for me (for 10, it would hit 9, <, _, @ and not print anything). \$\endgroup\$ – Riley Nov 14 '16 at 18:19
  • \$\begingroup\$ @Riley no, you'd still put the ) after the first ! to get 9<@|!)_!. \$\endgroup\$ – Martin Ender Nov 14 '16 at 18:22
  • 1
    \$\begingroup\$ I added a new solution that doesn't increase the size of the hex. \$\endgroup\$ – Riley Nov 14 '16 at 19:09
2
\$\begingroup\$

Python 2, 26 bytes, 10 numbers, cracked

Let's try this again.

print r___e(3______+_[___]

Works for 1-10; _ is the hidden character.

\$\endgroup\$
  • \$\begingroup\$ Cracked - also if you're reposting, be careful of newlines, because I feel like something might be workable with those too. \$\endgroup\$ – Sp3000 Nov 15 '16 at 6:22
2
\$\begingroup\$

Perl, 31 bytes - 10 numbers - Cracked by ais523

__e_$a__<__$_;1 while_$__;say$_

_ is the hidden character.

I am not posting my solution here, because the crack is in a completely different direction from what I did, so I'll be creating a new challenge for that one. The cracked solution is below:

 $e=$a+q<1_$>;1 while!$e ;say$e  #Prints 1 (note the leading space)
 $e=$a+q<1_$>+1 while!$e ;say$e  #Prints 2
 $e=$a+q<1_$>+2 while!$e ;say$e  #Prints 3
 $e=$a+q<1_$>+3 while!$e ;say$e  #Prints 4
 $e=$a+q<1_$>+4 while!$e ;say$e  #Prints 5
 $e=$a+q<1_$>+5 while!$e ;say$e  #Prints 6
 $e=$a+q<1_$>+6 while!$e ;say$e  #Prints 7
 $e=$a+q<1_$>+7 while!$e ;say$e  #Prints 8
 $e=$a+q<1_$>+8 while!$e ;say$e  #Prints 9
 $e=$a+q<1_$>+9 while!$e ;say$e  #Prints 10
\$\endgroup\$
  • 1
    \$\begingroup\$ Cracked! \$\endgroup\$ – user62131 Nov 15 '16 at 16:13
2
\$\begingroup\$

C++, Linux platform, 10 numbers, 468 bytes, Cracked

Ok so previously my puzzle played with technically undefined behavior (and the gimmick was stabilizing it) and had some transcription error. I have improved my process so I expect there aren't transcription errors. This time I am not playing with undefined behavior at all and would rather just reject invoking it. I think I can justify this as being completely defined by either the language or the platform. $ is the replacement character as I needed real _ characters in this puzzle.

#include <unistd.h>
#include <iostream>
#include <fstream>

$$$$$$$$$$$$$ {
    std::ofstream *garbalgase()
    {
        std::ofstream *golgi = new std::ofstream;
        golgi->open("/dev/null");
        return golgi;
    }

    std::ostream * const jawbone = garbalgase();
    $$$$$ int value = $_$$$$$$;
}

int main()
{
    $$$$$ $$$$$$$$/$$int vl = value;
    if (fork() == 0)
    {
        $$$$$$$$$$$<std::ostream $*>($jawbone) = &std::cout;
        vl -= 4;
        _exit(0);
    }
    (*jawbone) << (vl - 9) << std::endl;
}

Edit: Stock solution is based on an incorrect understanding of the rules where you may insert one character to get the 1. As it's already cracked I won't be correcting it. Good luck finding the stock solution though.

\$\endgroup\$
  • \$\begingroup\$ Maybe you should specify the compiler and flags a solution has to work under? I have a crack, but it needs -fpermissive. \$\endgroup\$ – Lynn Nov 15 '16 at 14:50
  • \$\begingroup\$ @Lynn: There's a way of getting rid of the need of -fpermissive. \$\endgroup\$ – Joshua Nov 15 '16 at 16:12
  • \$\begingroup\$ Cracked. I assume this isn't the intended solution. \$\endgroup\$ – user62131 Nov 15 '16 at 17:43
2
\$\begingroup\$

Hexagony, 15 bytes, 10 numbers, Cracked!

[!?>!@!__\!?!!!

_ can be replaced by any characters.

Oh my.. the code is getting angry due to cheap solutions! Will this keep standing when the wall of ! and ? are guarding the most hearted secret?

Last submission even if this has got any cheap solutions :)

Intended solution

For 1 to 9, there are easy changes:

[!?>!@!1#\!?!!! With 1~9 replacing the 1

However for 10,

1!?>!@!9#\!?!!! Which prints the 1 and then use a numerical jump so we run in a reversed fashion, which in turn goes to ?! prints a 0 and stops. Really wanted to make some that changes IPs. By the way, all 3 submissions are with the intention to use # to print an 1 and then a 0. See if I come up with other nice ideas - if yes I hope more people would find it interesting to play in hexagons!

\$\endgroup\$
  • \$\begingroup\$ Cracked. Is this what you were looking for? :) \$\endgroup\$ – Martin Ender Nov 16 '16 at 12:57
  • \$\begingroup\$ Haha, impressed though not exactly what I have in mind. One more mirror, one more freedom - it seems that only ! are real blockers :D Enjoyed playing this game! \$\endgroup\$ – Sunny Pun Nov 16 '16 at 13:11
  • 1
    \$\begingroup\$ Ahhh, I thought you might be printing 1 and 0 separately, using a ? to get the 0, but I couldn't figure out a good way to get a 1 back at the end and then move exactly through !?!@ (plus irrelevant stuff). That's nice. :) (Too bad, it's so hard to constrain the problem sufficiently without giving too much away.) \$\endgroup\$ – Martin Ender Nov 16 '16 at 13:20
2
\$\begingroup\$

><> Fish 23 bytes cracked

"H__;v+2__?
  _  >l?!;n

_ is the intended missing characters. Hopefully a bit more complicated than my last one but probably still easy to bypass.

\$\endgroup\$
  • 1
    \$\begingroup\$ Cracked. \$\endgroup\$ – Martin Ender Nov 17 '16 at 15:04
  • \$\begingroup\$ @Martin Ender - Yep you got it, clearing the stack and using the implicit input being -1 :) \$\endgroup\$ – Teal pelican Nov 17 '16 at 15:11
2
\$\begingroup\$

Perl, 31 bytes, 10 numbers Cracked by ais523

One more go at this, before I reveal my intended solution.

__e_$a,_<__$_;1 while_$a_;say$_

Original code:

open$a,"<",$0;1 while<$a>;say$.  #Prints 1

The code must be saved as a file and not run from the command line, but the file name is not important, as it gets stored in $0. This code reads the file as long as there is text left, and prints $. which contains the number of lines in the original code. Adding a newline pretty much anywhere not inside a word or variable will increase $. by 1.

open$a,"<",$0;
1 while<$a>;say$.   #Prints 2
------
open$a,"<",$0;

1 while<$a>;say$.   #Prints 3
------

et cetera

\$\endgroup\$
  • \$\begingroup\$ Cracked!. This is almost certainly the intended solution. \$\endgroup\$ – user62131 Nov 17 '16 at 15:43
2
\$\begingroup\$

​O​C​a​m​l​ ​(​i​n​t​e​r​p​r​e​t​e​d​)​,​ ​5​1​ ​b​y​t​e​s​,​ ​1​0​ ​n​u​m​b​e​r​s​ (Cracked)

​ ​B​y​ ​"​i​n​t​e​r​p​r​e​t​e​d​"​ ​I​ ​m​e​a​n​ ​t​h​a​t​ ​i​t​ ​s​h​o​u​l​d​ ​b​e​ ​r​u​n​ ​w​i​t​h​ ​t​h​e​ ​c​o​m​m​a​n​d​ ​​o​c​a​m​l​​ ​r​a​t​h​e​r​ ​t​h​a​n​ ​c​o​m​p​i​l​e​d​ ​t​o​ ​n​a​t​i​v​e​ ​c​o​d​e​ ​w​i​t​h​ ​​o​c​a​m​l​o​p​t​​.​ ​ ​T​h​e​ ​h​i​d​d​e​n​ ​c​h​a​r​a​c​t​e​r​ ​i​s​ ​​^​​.​

^^t^r^^^^-^^^^-^^r^^^^=^^^^^^^r^^^^r^^^^^^^(^^^0/0)
\$\endgroup\$
  • 1
    \$\begingroup\$ Cracked. The same trick still works, even though it's harder to fit everything in this time. \$\endgroup\$ – user62131 Nov 18 '16 at 1:04
2
\$\begingroup\$

PHP, 38 bytes, 10 numbers (cracked)

<?php__n_p___(_n=___(__=1___echo___?>

_ marks hidden characters.

May be too easy, might have left too much freedom. Have fun!

\$\endgroup\$
  • 1
    \$\begingroup\$ Cracked. You left way too much freedom, unfortunately. \$\endgroup\$ – user62131 Nov 17 '16 at 18:30
  • \$\begingroup\$ Good job, I'll see if I can repost this with less hidden characters without making it too obvious \$\endgroup\$ – Leo Nov 18 '16 at 8:05
2
\$\begingroup\$

R, 22 bytes, 10 numbers, Cracked

_et_______)____is_____

_ is a hidden character.

See the redux version.

\$\endgroup\$
2
\$\begingroup\$

Java, 10+ digits, 1446 bytes SAFE

Revenge of the Unicode

\u___9\u___D\u___0\u___F\u___2\u___4\u___0\u___A\u___1\u___6\u___1\u___E\u___9\u___F\u___E\u___A\u___B\u___3\u___C\u___1\u___3\u___3\u___0\u___D\u___B\u___0\u___5\u___2\u___C\u___9\u___3\u___0\u___3\u___4\u___1\u___4\u___9\u___3\u___0\u___6\u___F\u___9\u___4\u___0\u___D\u___1\u___9\u___E\u___8\u___3\u___4\u___2\u___9\u___E\u___7\u___B\u___D\u___1\u___9\u___4\u___8\u___2\u___F\u___7\u___3\u___0\u___5\u___8\u___3\u___5\u___0\u___4\u___9\u___F\u___E\u___B\u___6\u___9\u___C\u___5\u___4\u___5\u___3\u___3\u___2\u___9\u___0\u___4\u___F\u___2\u___0\u___6\u___4\u___0\u___D\u___0\u___E\u___5\u___7\u___0\u___6\u___9\u___C\u___5\u___4\u___5\u___3\u___3\u___2\u___9\u___0\u___4\u___F\u___2\u___8\u___9\u___B\u___3\u___5\u___E\u___E\u___D\u___9\u___3\u___3\u___E\u___3\u___8\u___1\u___2\u___5\u___4\u___3\u___5\u___3\u___2\u___5\u___4\u___3\u___E\u___7\u___5\u___4\u___A\u___1\u___6\u___1\u___9\u___F\u___6\u___9\u___C\u___5\u___4\u___5\u___3\u___3\u___2\u___9\u___0\u___4\u___F\u___2\u___1\u___3\u___3\u___5\u___3\u___3\u___8\u___9\u___E\u___3\u___5\u___4\u___8\u___6\u___4\u___C\u___1\u___9\u___B\u___E\u___5\u___7\u___0\u___0\u___2\u___9\u___E\u___4\u___3\u___4\u___2\u___5\u___1\u___D\u___8\u___E\u___5\u___7\u___0\u___6\u___9\u___C\u___5\u___F\u___5\u___4\u___0\u___5\u___4\u___3\u___4\u___2\u___5\u___1\u___D\u___8\u___6\u___4\u___9\u___9\u___E\u___0\u___2\u___9\u___E\u___4\u___8\u___7\u1__1\u___7\u___5\u___7\u___1\u___7\u___9\u___B\u___D\u___D

No comments this time :P and it only works on the Oracle Java :P

_ as redaction like usual

Solution:

\u0069\u006D\u0070\u006F\u0072\u0074\u0020\u006A\u0061\u0076\u0061\u002E\u0069\u006F\u002E\u002A\u003B\u0063\u006C\u0061\u0073\u0073\u0020\u004D\u007B\u0070\u0075\u0062\u006C\u0069\u0063\u0020\u0073\u0074\u0061\u0074\u0069\u0063\u0020\u0076\u006F\u0069\u0064\u0020\u006D\u0061\u0069\u006E\u0028\u0053\u0074\u0072\u0069\u006E\u0067\u005B\u005D\u0061\u0029\u0074\u0068\u0072\u006F\u0077\u0073\u0020\u0045\u0078\u0063\u0065\u0070\u0074\u0069\u006F\u006E\u007B\u0046\u0069\u006C\u0065\u0044\u0065\u0073\u0063\u0072\u0069\u0070\u0074\u006F\u0072\u0020\u0066\u0064\u0020\u003D\u0020\u006E\u0065\u0077\u0020\u0046\u0069\u006C\u0065\u0044\u0065\u0073\u0063\u0072\u0069\u0070\u0074\u006F\u0072\u0028\u0029\u003B\u0073\u0075\u006E\u002E\u006D\u0069\u0073\u0063\u002E\u0053\u0068\u0061\u0072\u0065\u0064\u0053\u0065\u0063\u0072\u0065\u0074\u0073\u002E\u0067\u0065\u0074\u004A\u0061\u0076\u0061\u0049\u004F\u0046\u0069\u006C\u0065\u0044\u0065\u0073\u0063\u0072\u0069\u0070\u0074\u006F\u0072\u0041\u0063\u0063\u0065\u0073\u0073\u0028\u0029\u002E\u0073\u0065\u0074\u0028\u0066\u0064\u002C\u0031\u0029\u003B\u006E\u0065\u0077\u0020\u0050\u0072\u0069\u006E\u0074\u0053\u0074\u0072\u0065\u0061\u006D\u0028\u006E\u0065\u0077\u0020\u0046\u0069\u006C\u0065\u004F\u0075\u0074\u0070\u0075\u0074\u0053\u0074\u0072\u0065\u0061\u006D\u0028\u0066\u0064\u0029\u0029\u002E\u0070\u0072\u0069\u006E\u0074\u0028\u0027\u1111\u0027\u0025\u0027\u0111\u0027\u0029\u003B\u007D\u007D

Deobfuscated:

import java.io.*;class M{public static void main(String[]a)throws Exception{FileDescriptor fd = new FileDescriptor();sun.misc.SharedSecrets.getJavaIOFileDescriptorAccess().set(fd,1);new PrintStream(new FileOutputStream(fd)).print('\u1111'%'\u0111');}}

Entire Thing relies on some dirty Oracle Java classes trickery to link a Filedescriptor object to the 1 Filedescriptor which is stdout

Got the hack from stackoverflow

\$\endgroup\$
  • \$\begingroup\$ Got up to the initialisation of FileDescriptor fd, then I got stuck \$\endgroup\$ – Cows quack Nov 18 '16 at 17:04
  • \$\begingroup\$ timezone checking, need to know if the 7days are over \$\endgroup\$ – masterX244 Nov 22 '16 at 8:45
  • 1
    \$\begingroup\$ @KritixiLithos Solution uncovered since its safe \$\endgroup\$ – masterX244 Nov 22 '16 at 9:32
1
\$\begingroup\$

아희(Aheui), 19 bytes (6 chars + 1 newline), 10 numbers

봃法희
반_뭉

Works for 1 to 10. _ is the hidden character. Shouldn't be that hard.

Bonus: It works for 0 too.

Try it online!

\$\endgroup\$
1
\$\begingroup\$

Pyth, 3 bytes, 10 numbers (Cracked)

I think it's a very simple one, and will easily get cracked.
So, it goes like this: (hidden characters: _)

__Q
\$\endgroup\$
1
\$\begingroup\$

JavaScript, 15 bytes, 10 numbers, cracked

alert(_+"+____)

Another short one, this time with an unfinished string >:-)

\$\endgroup\$
  • \$\begingroup\$ Cracked? :) \$\endgroup\$ – Adnan Nov 12 '16 at 22:34
  • 1
    \$\begingroup\$ @Adnan Aw man, that was a little easier than I expected... nice job :) My intended solution was alert("+"+10-9), changing the 9 to smaller digits for larger numbers. \$\endgroup\$ – ETHproductions Nov 12 '16 at 22:36
1
\$\begingroup\$

Octave, 21 bytes 9 numbers, cracked

_a__repmat(_one___,__

_ is a hidden character.

My idea:

a=[repmat(bone,0),9]

\$\endgroup\$
  • \$\begingroup\$ Yes, I'm still trying to solve yours, but it is quite hard so far=) Hint: one of the _ is just an space. \$\endgroup\$ – flawr Nov 12 '16 at 22:50
  • \$\begingroup\$ Cracked! =) Couldn't leave it be... That was a really good one! :) \$\endgroup\$ – Stewie Griffin Nov 12 '16 at 23:02
  • \$\begingroup\$ Man, still not my solution, I'm going insane!! Can you crack _repmat(_one___,__? EDIT: Yes you can... +repmat( ones(),1) ok I'll post my original solution=) \$\endgroup\$ – flawr Nov 12 '16 at 23:05
  • \$\begingroup\$ @StewieGriffin I just wanted to mislead with the one (and I suspect LuisMendo wanted this in his original challenge too=) \$\endgroup\$ – flawr Nov 12 '16 at 23:10
  • 2
    \$\begingroup\$ Haha, bone is one of a few colourmaps, I knew it from Matlab, as it is used to display x-ray images with the "analog" feel =) \$\endgroup\$ – flawr Nov 12 '16 at 23:14
1
\$\begingroup\$

JavaScript, 12 bytes, 10 numbers, Cracked

Let's play with arrays:

alert(_[__])

_ is a hidden character.


I wanted robbers to think that the first hidden character was a +, but i didn't realize that would work.

Intended solution :

alert(-[~0])
alert(-[~1])
alert(-[~2])
...
alert(-[~9])

\$\endgroup\$
1
\$\begingroup\$

Python 2, 49 bytes, 10 numbers, cracked

y=10__;s='09________';print int(s[8__________:y])

_ is the hidden character.


Cracked by boboquack

The initial code was

y=10-0;s='0987654321';print int(s[8+y:]+s[y-1:y])

\$\endgroup\$
1
\$\begingroup\$

PowerShell, 7 bytes, 10 numbers, Cracked

Works for 1 through 10. Hidden characters are _.

___(__0

Intended solution: +!@()+0 and swap out the 0 on the end for successively larger numbers.

\$\endgroup\$
  • \$\begingroup\$ Cracked. I'm curious to know if this is the original code though. \$\endgroup\$ – Dada Nov 13 '16 at 21:15
  • \$\begingroup\$ @Dada That is not the original code, but a good solution. \$\endgroup\$ – AdmBorkBork Nov 14 '16 at 13:19
1
\$\begingroup\$

Java, 70 bytes, 10 Numbers, Cracked

__________________________ ____(_____________________________)________

_ is the hidden character

Edit: major flaw fixed

\$\endgroup\$
  • \$\begingroup\$ Is this a full program? \$\endgroup\$ – Cows quack Nov 14 '16 at 9:28
  • \$\begingroup\$ yeah :P golfed though \$\endgroup\$ – masterX244 Nov 14 '16 at 9:29
  • \$\begingroup\$ Cracked! \$\endgroup\$ – Cows quack Nov 14 '16 at 9:48
1
\$\begingroup\$

><> Fish 5 bytes 10 numbers Cracked by Emigna

_2__;

It should be easy to guess but I threw in a little curve ball to make it slightly harder.

\$\endgroup\$
  • 1
    \$\begingroup\$ Cracked \$\endgroup\$ – Emigna Nov 14 '16 at 16:04
  • 2
    \$\begingroup\$ @Emigna it's very hard to make this not work in Fish but my original was i2+n; maybe I should work on a new one aha. \$\endgroup\$ – Teal pelican Nov 14 '16 at 16:26
1
\$\begingroup\$

Javascript 19 bytes 10 numbers Cracked

alert((_1*1_10__1_)

Unrevealed characters are marked with _

Cracked! Guess i should have blotted better

alert((11*1+10)%10)
alert((11*2+10)%10)
alert((11*3+10)%10)
alert((11*4+10)%10)
alert((11*5+10)%10)
alert((11*6+10)%10)
alert((11*7+10)%10)
alert((11*8+10)%10)
alert((11*9+10)%10)
alert((11*9+10)%11)
\$\endgroup\$
  • \$\begingroup\$ Cracked \$\endgroup\$ – Riley Nov 14 '16 at 19:20
1
\$\begingroup\$

R, 8 bytes, 10 numbers, Cracked

_a___+__

Original solution (as the cracked is a little different, but works):

cat(1+0)
cat(1+1)
...
cat(1+8)
cat(1+9)

\$\endgroup\$
1
\$\begingroup\$

JavaScript (ES6), 63 bytes, 10 numbers, cracked

This challenge is quite fun, so here's one last submission. :-)

eval([...(n=0,"l?0?a?(?x?")].sort(_=>[...????+[]][n++]).join``)

? is a hidden character.

NB: similarly to my two other entries, this code is supposed to print (not return) 1.

\$\endgroup\$
1
\$\begingroup\$

Perl, 31 bytes, 10 numbers Cracked by ais523

__e_$a__<__$_;1 while_$a_;say$_

My original post was cracked with a solution that wasn't even in the realm of what I was going for, so I'm adding a single extra byte that renders the previous solution (hopefully) unsalvageable.

Once again cracked in a way I haven't accounted for:

the;$a+=<1\$>;1 while!$a ;say$a #Prints 1
the;$a+=<1\$>+1 while!$a ;say$a #Prints 2
...
the;$a+=<1\$>+9 while!$a ;say$a #Prints 10
\$\endgroup\$
  • \$\begingroup\$ Cracked!. Not quite the same principle this time, but still close enough. \$\endgroup\$ – user62131 Nov 15 '16 at 16:54
1
\$\begingroup\$

Perl, 26 bytes, 10 numbers Cracked by ais523 and Sunny Pun

____;@a=($_..10);say$a[__]

I'm almost positive there's an alternate solution to this problem, but let's see if anyone else can find it because I haven't been able to see it.

Edit: It looks like two people managed to circumvent what I was trying to do!

ais523's solution:

____;@a=($|..10);say$a[+1]  #Prints 1
____;@a=($|..10);say$a[1+1] #Prints 2
...
____;@a=($|..10);say$a[9+1] #Prints 10

Sunny Pun's solution:

$_=0;@a=($_..10);say$a[+1]  #Prints 1
...
$_=9;@a=($_..10);say$a[+1]  #Prints 10

Intended solution:

$[=1;@a=($[..10);say$a[$[]  #Prints 1
$[=2;@a=($[..10);say$a[$[]  #Prints 2
$[=3;@a=($[..10);say$a[$[]  #Prints 3
$[=4;@a=($[..10);say$a[$[]  #Prints 4
$[=5;@a=($[..10);say$a[$[]  #Prints 5
$[=5;@a=($[..10);say$a[-$[]  #Prints 6
$[=4;@a=($[..10);say$a[-$[]  #Prints 7
$[=3;@a=($[..10);say$a[-$[]  #Prints 8
$[=2;@a=($[..10);say$a[-$[]  #Prints 9
$[=1;@a=($[..10);say$a[-$[]  #Prints 10

While deprecated, $[ still allows you to modify the indexing of arrays (typically, 0-based). It prints a warning to STDERR, but OP says that any output to STDERR can be ignored.

\$\endgroup\$
  • \$\begingroup\$ Here's your alternate solution: Cracked! \$\endgroup\$ – user62131 Nov 15 '16 at 17:00
  • \$\begingroup\$ Please check if this is an alternate solution or not :) \$\endgroup\$ – Sunny Pun Nov 15 '16 at 17:02
  • \$\begingroup\$ I'm guessing Sunny Pun's crack is the intended solution. (Interestingly, starting from Sunny Pun's version of the string, you can get from 1 up to 10 using either of our methods.) \$\endgroup\$ – user62131 Nov 15 '16 at 17:04
  • \$\begingroup\$ Surprisingly, neither of you got the intended solution. I should have added one more byte, which would have made both of your answers wrong. \$\endgroup\$ – Gabriel Benamy Nov 15 '16 at 17:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.