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\$
14
  • \$\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
    Commented Nov 12, 2016 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\$ Commented Nov 12, 2016 at 12:50
  • 3
    \$\begingroup\$ @LuisMendo Well, it will certainly make this more interesting... \$\endgroup\$ Commented Nov 12, 2016 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\$ Commented Nov 13, 2016 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\$ Commented Nov 15, 2016 at 20:51

88 Answers 88

2
\$\begingroup\$

Acc!!, 10 bytes, 9 numbers, cracked

?????????_

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

\$\endgroup\$
1
  • \$\begingroup\$ Interesting one. Cracked here \$\endgroup\$
    – Dada
    Commented Nov 12, 2016 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\$
4
  • \$\begingroup\$ cracked but probably again nowhere close to what you intended=) \$\endgroup\$
    – flawr
    Commented Nov 13, 2016 at 11:08
  • \$\begingroup\$ @flawr I have updated with my solution \$\endgroup\$
    – Luis Mendo
    Commented Nov 13, 2016 at 14:50
  • \$\begingroup\$ This will be my last (and hopefully best one). \$\endgroup\$ Commented Nov 13, 2016 at 16:20
  • 1
    \$\begingroup\$ @Stewie Looks difficult! That is, funny :-) \$\endgroup\$
    – Luis Mendo
    Commented Nov 13, 2016 at 17:13
2
\$\begingroup\$

Python 2, 17 bytes, 10 numbers, cracked

print len([????])

The hidden character is ?.

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

Pyth, 4 bytes, 9 numbers - Cracked

.__Q

Not super difficult, but should hopefully be fun.

\$\endgroup\$
1
  • \$\begingroup\$ Cracked :) \$\endgroup\$
    – Adnan
    Commented Nov 13, 2016 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\$
6
  • \$\begingroup\$ Last? Forever? For all of PPCG? \$\endgroup\$ Commented Nov 14, 2016 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
    Commented Nov 14, 2016 at 12:31
  • \$\begingroup\$ Nevermind, cracked (but is this what you had in mind??) \$\endgroup\$
    – flawr
    Commented Nov 14, 2016 at 12:39
  • 1
    \$\begingroup\$ Oooh, the fopen is neat=) \$\endgroup\$
    – flawr
    Commented Nov 14, 2016 at 12:51
  • \$\begingroup\$ @flawr. thanks :) I like the sequence you found too :) \$\endgroup\$ Commented Nov 14, 2016 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\$
6
  • \$\begingroup\$ Cracked \$\endgroup\$
    – Riley
    Commented Nov 14, 2016 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\$ Commented Nov 14, 2016 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
    Commented Nov 14, 2016 at 18:19
  • \$\begingroup\$ @Riley no, you'd still put the ) after the first ! to get 9<@|!)_!. \$\endgroup\$ Commented Nov 14, 2016 at 18:22
  • 1
    \$\begingroup\$ I added a new solution that doesn't increase the size of the hex. \$\endgroup\$
    – Riley
    Commented Nov 14, 2016 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\$
1
  • \$\begingroup\$ Cracked - also if you're reposting, be careful of newlines, because I feel like something might be workable with those too. \$\endgroup\$
    – Sp3000
    Commented Nov 15, 2016 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
  • 1
    \$\begingroup\$ Cracked! \$\endgroup\$
    – user62131
    Commented Nov 15, 2016 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\$
3
  • \$\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
    Commented Nov 15, 2016 at 14:50
  • \$\begingroup\$ @Lynn: There's a way of getting rid of the need of -fpermissive. \$\endgroup\$
    – Joshua
    Commented Nov 15, 2016 at 16:12
  • \$\begingroup\$ Cracked. I assume this isn't the intended solution. \$\endgroup\$
    – user62131
    Commented Nov 15, 2016 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\$
3
  • \$\begingroup\$ Cracked. Is this what you were looking for? :) \$\endgroup\$ Commented Nov 16, 2016 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
    Commented Nov 16, 2016 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\$ Commented Nov 16, 2016 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\$
2
  • 1
    \$\begingroup\$ Cracked. \$\endgroup\$ Commented Nov 17, 2016 at 15:04
  • \$\begingroup\$ @Martin Ender - Yep you got it, clearing the stack and using the implicit input being -1 :) \$\endgroup\$ Commented Nov 17, 2016 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\$
1
  • \$\begingroup\$ Cracked!. This is almost certainly the intended solution. \$\endgroup\$
    – user62131
    Commented Nov 17, 2016 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
  • 1
    \$\begingroup\$ Cracked. The same trick still works, even though it's harder to fit everything in this time. \$\endgroup\$
    – user62131
    Commented Nov 18, 2016 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\$
2
  • 1
    \$\begingroup\$ Cracked. You left way too much freedom, unfortunately. \$\endgroup\$
    – user62131
    Commented Nov 17, 2016 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
    Commented Nov 18, 2016 at 8:05
2
\$\begingroup\$

R, 22 bytes, 10 numbers, Cracked

_et_______)____is_____

_ is a hidden character.

See the redux version.

\$\endgroup\$
1
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\$
3
  • \$\begingroup\$ Got up to the initialisation of FileDescriptor fd, then I got stuck \$\endgroup\$
    – user41805
    Commented Nov 18, 2016 at 17:04
  • \$\begingroup\$ timezone checking, need to know if the 7days are over \$\endgroup\$
    – masterX244
    Commented Nov 22, 2016 at 8:45
  • 1
    \$\begingroup\$ @KritixiLithos Solution uncovered since its safe \$\endgroup\$
    – masterX244
    Commented Nov 22, 2016 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
  • 1
    \$\begingroup\$ Cracked. \$\endgroup\$
    – jimmy23013
    Commented Nov 12, 2016 at 21:39
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
1
\$\begingroup\$

JavaScript, 15 bytes, 10 numbers, cracked

alert(_+"+____)

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

\$\endgroup\$
2
  • \$\begingroup\$ Cracked? :) \$\endgroup\$
    – Adnan
    Commented Nov 12, 2016 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\$ Commented Nov 12, 2016 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\$
7
  • \$\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
    Commented Nov 12, 2016 at 22:50
  • \$\begingroup\$ Cracked! =) Couldn't leave it be... That was a really good one! :) \$\endgroup\$ Commented Nov 12, 2016 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
    Commented Nov 12, 2016 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
    Commented Nov 12, 2016 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
    Commented Nov 12, 2016 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
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
  • 1
    \$\begingroup\$ Cracked \$\endgroup\$
    – boboquack
    Commented Nov 13, 2016 at 4:51
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\$
2
  • \$\begingroup\$ Cracked. I'm curious to know if this is the original code though. \$\endgroup\$
    – Dada
    Commented Nov 13, 2016 at 21:15
  • \$\begingroup\$ @Dada That is not the original code, but a good solution. \$\endgroup\$ Commented Nov 14, 2016 at 13:19
1
\$\begingroup\$

Java, 70 bytes, 10 Numbers, Cracked

__________________________ ____(_____________________________)________

_ is the hidden character

Edit: major flaw fixed

\$\endgroup\$
3
  • \$\begingroup\$ Is this a full program? \$\endgroup\$
    – user41805
    Commented Nov 14, 2016 at 9:28
  • \$\begingroup\$ yeah :P golfed though \$\endgroup\$
    – masterX244
    Commented Nov 14, 2016 at 9:29
  • \$\begingroup\$ Cracked! \$\endgroup\$
    – user41805
    Commented Nov 14, 2016 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\$
2
  • 1
    \$\begingroup\$ Cracked \$\endgroup\$
    – Emigna
    Commented Nov 14, 2016 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\$ Commented Nov 14, 2016 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\$
1
  • \$\begingroup\$ Cracked \$\endgroup\$
    – Riley
    Commented Nov 14, 2016 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
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
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\$
1
  • \$\begingroup\$ Cracked!. Not quite the same principle this time, but still close enough. \$\endgroup\$
    – user62131
    Commented Nov 15, 2016 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\$
4
  • \$\begingroup\$ Here's your alternate solution: Cracked! \$\endgroup\$
    – user62131
    Commented Nov 15, 2016 at 17:00
  • \$\begingroup\$ Please check if this is an alternate solution or not :) \$\endgroup\$
    – Sunny Pun
    Commented Nov 15, 2016 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
    Commented Nov 15, 2016 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\$ Commented Nov 15, 2016 at 17:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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