[Question]
  [
> 
> Note: This challenge is finished. Submissions are still welcome but can not win.
> 
> 
> 
This is the cops' thread. The robbers' thread [goes here](https://codegolf.stackexchange.com/questions/99547/code-ladder-robbers).
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>
```
  
[Answer]
## [Retina](https://github.com/m-ender/retina), 2 bytes, 10 numbers, [Cracked](https://codegolf.stackexchange.com/a/99560/8478)
```
_1
```
Works for 1 to 10, `_` is a hidden character. This shouldn't be too hard, but I hope it provides a somewhat interesting puzzle. :)
[You can try Retina online over here.](http://retina.tryitonline.net/)
[Answer]
# Octave, 55 bytes, 10 numbers, [cracked](https://codegolf.stackexchange.com/a/99834/24877)
```
(o__(O_o_(@(__o)o__-O}_)_(0<O,{_(_o_O-1)+1_@(_1}_)(__o_
```
`_` is the unknown character.
### Solution
> 
>  `(o=@(O,o)(@(O,o)o{2-O}())(0<O,{@()o(O-1)+1,@()1}))(0,o)` %then changing the very last `0` to `1,2,3` e.t.c.
>   
> 
>   
> 
>  Given `x`, this does recursively calculate `x+1`. It is mainly composed of two anonymous functions. One provides an `if` statement to anchor the recursion:
>   
> 
>   
> 
> `if_ = @( boolean, outcomes) outcomes{ 2 - boolean}();`
>   
> 
>   
> 
>  This is just abusing the fact that a boolean values evaluates to `0` or `1`. This function accepts a boolean value, and a cell array of two functions, and evaluates one or the other of these two functiosn depending on the boolean value. The second part is the actual recursion:
>   
> 
>   
> 
> `plus_one = @(n,f) if_(0<n ,{@()f(n-1)+1, @()1})`
>   
> 
>   
> 
>  As an anyonmous function is anonymous, you cannot directly access it from itsefl. That why we need a second argument `f` first. Later we will provide a handle to the function instelf as a second argument, so a final function would looks like so:
>   
> 
>   
> 
> `plus_one_final = @(n)plus_one(n,plus_one);`
>   
> 
>   
> 
>  So in this notation my submission becomes:
>   
> 
>   
> 
> `(plus_one=@(n,f)(@(boolean,outcomes)outcomes{2-boolean}())(0<n,{@()f(n-1)+1,@()1}))(n,f)`
>   
> 
>   
> 
>  I asked about recursion anchors for anonymous functions in MATLAB a while ago on [stackoverflow](https://stackoverflow.com/a/32268411/2913106).
> 
> 
> 
[Answer]
## Python 2, 9 bytes, 10 numbers, [cracked](https://codegolf.stackexchange.com/a/100039/20260)
```
print 8/8
```
No hidden chars. Can you crack it without brute forcing?
[Answer]
# Perl, 12 bytes, 10 numbers, [Cracked!](https://codegolf.stackexchange.com/a/99760/62131)
Underscores represent unknown characters.
```
____;say__-9
```
Probably fairly easy, and it wouldn't surprise me if there were multiple solutions. Still, it might be fun to crack.
(The intended solution was the same as the crack. This is fundamentally just a problem about assigning 10 to a variable in four characters, which is surprisingly difficult in Perl; unlike many golfing languages, it doesn't have a variable that helpfully starts at 10.)
[Answer]
# Perl, 46 bytes, 10 numbers, safe
## The problem
```
__b_b_\__}_b_b_b_0_;
$b[0]=10;$b{0}=1;say$b[0]
```
The shorter problems tend to get cracked quickly, so I thought I'd try a longer one. The longer ones also tend to get cracked if people leave enough of a gap to sneak something naughty like `say` or `exit` in, so all the gaps here are short. Hidden characters are represented using `_`.
## My solution
```
sub b{\@_}*b=b$b{0};
$b[0]=10;$b{0}=1;say$b[0]
```
To print 2, 3, etc., up to 9, keep changing the number assigned to `$b{0}` in the second line (i.e. `$b{0}=2`, `$b{0}=3`, etc.). The program for 9 looks like this:
```
sub b{\@_}*b=b$b{0};
$b[0]=10;$b{0}=9;say$b[0]
```
Then to produce 10, comment out the first line by prepending a `#` character to it.
## Explanation
The first thing to note is that the solution isn't really golfed apart from removing whitespace: if we lay it out with more readable whitespace, we get this:
```
sub b { \@_ }
*b = b $b{0};
$b[0] = 10;
$b{0} = 1;
say $b[0];
```
Normally, when you access the arguments of a subroutine in Perl, you do so via copying them out of `@_`. There's a good reason for this: `@_` aliases the arguments the subroutine is given (so, for example, `(sub { $_[0] = 3 })->($x)` will assign to `$x`), something that isn't normally desirable.
Although `@_` might seem magical, it's actually just using a standard feature of the Perl internals (which is readily available from XS but only comes up in a few weird cases in pure Perl, such as `@_` itself): an array doesn't store its elements directly, but rather by reference. Thus, when we call `b` in the second line below, Perl generates an array (calling it `@_`) whose first element is a reference to the same storage that `$b{0}` uses. (Hash values are also stored by reference; $\_[0] and $b{0} are both referencing the same storage at this point.) Because `@_` isn't doing anything special from an internals point of view, we can take a reference to it just like we could with any other array, causing it to outlive the subroutine it's defined in.
Perl variables *also* refer to data storage by reference. A long time ago, people used to use code like `*x = *y;` to set `$x` as an alias to `$y` (via making them reference the same thing), likewise `@x` as an alias to `@y`, `%x` as an alias to `%y`, and so on. That rather breaks the invariant that variables with similar names don't have to act similarly, so modern Perl provides an alternative; assigning a reference to a typeglob overrides only the variable that matches the type of the reference (so `*x = \%y` would alias `%x` to point to the same storage as `%y` but leave, say, `$x` alone). This syntax notably doesn't care about whether the storage you're aliasing to has a name, so when we assign the return value of `b` (which is an array reference that's keeping the array formerly called `@_` alive) to `*b`, what happens is that `@b` is changed to alias the argument list to the call to `b` (while leaving `%b` unchanged). This means, notably, that `$b[0]` and `$b{0}` now point to the same storage, and assigning to one will therefore change the other. Everything from then on is completely straightforward.
The Perl documentation doesn't really talk about this sort of detail, so I'm not surprised anyone got the crack; the nature of `@_` as not quite being like other arrays isn't something that's really emphasised, and most coding styles aim to minimize the effects that this has rather than amplifying them.
[Answer]
# JavaScript, 30 bytes, 10 numbers, [cracked](https://codegolf.stackexchange.com/a/99566/42545)
```
alert(Array(_)________.length)
```
Shouldn't be too hard, but hopefully it's just hard enough to provide a challenge. :) Unrevealed characters are marked with `_`.
[Answer]
## Perl, 14 bytes, 10 numbers, [Cracked](https://codegolf.stackexchange.com/a/99619/55508)
```
say_!"___"%""_
```
Works for 1 to 10. `_` are hidden characters. 
I think this shouldn't be too hard to crack. I have an harder one, for 22 bytes, I'll post it if this one is cracked.
---
Original code :
```
say"!"=~y"%""c
```
And replace the `"!"` by a string of the length of the number you wish to print, for instance `!`, `!!`, `!!!`, etc. 
However, [ais523](https://codegolf.stackexchange.com/users/62131/ais523) found another way :
```
say"!"+1#"%""r
```
[Answer]
## JavaScript, 22 bytes, 10 numbers, [cracked](https://codegolf.stackexchange.com/a/99759)
Probably rather easy to crack.
```
alert(__14_337__xc_de)
```
`_` being a hidden character
[Answer]
# Octave, 17 bytes, 10 numbers, [Cracked](https://codegolf.stackexchange.com/a/99647/24877)
```
_od(3_13_13_7_1_)
```
Original solution
> 
>  `mod(3*1361357,10)`
>   
> 
> `...`
>   
> 
> `mod(3*1361357,17)`
>   
> 
> `mod(3*1361397,17)`
>   
> 
> `mod(9*1361397,17)`
> 
> 
> 
`_` is the hidden character.
[Answer]
# [Jelly](https://github.com/DennisMitchell/jelly), 7 [bytes](https://github.com/DennisMitchell/jelly/wiki/Code-page), 10 numbers, [cracked](https://codegolf.stackexchange.com/a/99666/53748)
```
‚Äú1‚Äò·ªå»Æ·∏ä‚Äò
```
No wildcards.
The crack achieved (to use an eval with an argument) was, as many seem to be in this thread, not the intended one.
The intended crack was:
```
‚Äú1‚Äò·ªå»Æ·∏ä‚Äò - (prints 1)
‚Äú1‚Äò     - code page index list of characters "1": [49]
   ·ªå    - cast to ordinals: ['1']
    »Æ   - print (with no line feed) and return input: effectively prints "1"
        -     (but if left at this would then implicitly print another "1")
     ·∏ä  - dequeue: []
      ‚Äò - increment (vectorises): []
        - implicit print: prints ""
‚Äú1‚Äò·ªå≈í·∏ä‚Äò - (prints 2)
‚Äú1‚Äò·ªå    - as above: ['1']
    ≈í·∏ä  - depth: 1
      ‚Äò - increment: 2
        - implicit print: prints "2"
‚Äú1‚Äò·ªå≈í·∏ä‚Äò‚Äò - (prints 3)
‚Äú1‚Äò·ªå≈í·∏ä‚Äò  - as above: 2
       ‚Äò - increment: 3
         - implicit print: prints "3"
... keep adding an increment operator to print 4 - 10.
```
[Answer]
# Befunge-93, 11 bytes, 10+ numbers, [Cracked](/a/99901/21487)
This submission works for at least 1 - 10. Unrevealed characters are indicated with `‚ñ°`.
```
‚ñ°‚ñ°5:**-‚ñ°-.@
```
[Try it online](http://befunge.tryitonline.net/)
I must say I was impressed that two people could come up with independent solutions for this, neither of which were what I was expecting. While [Martin](/a/99649/8478) got there first, I'm giving the "win" to [Sp3000](/a/99901/21487) as their solution is more portable.
This was my intended solution though:
> 
> `g45:**-2-.@`  
> 
> `g45:**-1-.@`  
> 
> `g45:**-1\.@`  
> 
> `g45:**-1\+.@`  
> 
> `g45:**-2\+.@`  
> 
> `...`  
> 
> `g45:**-7\+.@`  
> 
>   
> 
> Because a stack underflow in Befunge is interpreted as 0, the `g` just reads from 0,0 returning the ASCII value of 'g', namely 103. `45:**-` subtracts 100, giving you 3. Then `2-` gives you 1.  
> 
>   
> 
> For the third iteration, the `-` (subtract) is changed to a `\` (swap) instruction, so the 3 becomes the topmost stack entry. And in iteration four, a `+` (add) instruction is inserted, thus adding the 3 to the 1 giving 4.
> 
> 
> 
[Answer]
# R, 21 bytes, 10 numbers [Cracked](https://codegolf.stackexchange.com/a/99890/62252)
```
__i___________i______
```
Works for 10 numbers. `_` is hidden character.
Original solution:
> 
>  `which(letters%in%"a")`
>   
> 
> `which(letters%in%"b")`
>   
> 
>  etc.
> 
> 
> 
[Answer]
# Ruby, 16 bytes, 10 numbers, [cracked by xsot](https://codegolf.stackexchange.com/a/100144/6828)
```
x=##/=#%#
)
###x
```
`#` is any character.
[Answer]
# Octave, 32 bytes, 10 numbers. [Cracked](https://codegolf.stackexchange.com/a/99572/36398)
```
_n_(isprime(floor(s____i__ i____
```
`_` is a hidden character.
You can try Octave online [here](https://octave-online.net/).
---
Original solution:
1: `nnz(isprime(floor(sqrt(i):pi')))`
2: `nnz(isprime(floor('sqrt(i):pi')))`
3: `nnz(isprime(floor('sqrt(i):pia')))`
4: `nnz(isprime(floor('sqrt(i):piaa')))`
...
[Answer]
# Octave, 17 bytes, 10 numbers, [Cracked](https://codegolf.stackexchange.com/a/99618/31516)
```
_i_(__i__(2_5_))
```
Unrevealed characters are marked with `_`.
Intended solution:
> 
> 
> ```
> 
>     fix(asind(2/59))
>     fix(asind(3/59))
>     fix(asind(4/59))
>     fix(asind(5/59))
>     fix(asind(6/59))
>     fix(asind(7/59))
>     fix(asind(8/59))
>     fix(asind(9/59))
>     fix(asind(9/55))
>     fix(asind(9/50))
> ```
> 
> 
> 
> 
[Answer]
# Octave, 19 bytes, 10 numbers, [cracked](https://codegolf.stackexchange.com/a/99631/24877)
```
__sca__1_)___'-_6_'
```
`_` is the hidden character.
Intended solution:
> 
>  pascal(10)('a'-96)'
> 
> 
> 
[Answer]
# [05AB1E](http://github.com/Adriandmen/05AB1E), 5 bytes, 10 numbers, [cracked!](https://codegolf.stackexchange.com/a/99657/56258)
Not very hard, but a fun one :)
```
_[==_
```
`_` is a random character. Uses the **CP-1252** encoding. [Try it online!](http://05ab1e.tryitonline.net/#code=X1s9PV8&input=)
[Answer]
# [05AB1E](http://github.com/Adriandmen/05AB1E), 6 bytes, 10 numbers, [cracked](https://codegolf.stackexchange.com/a/99670/58106)
Attempt 2, this time without the three-char string :p.
```
_ [==_
```
`_` is a random character. Uses the **CP-1252** encoding. [Try it online!](http://05ab1e.tryitonline.net/#code=XyBbPT1f&input=)
[Answer]
## JavaScript, 22 bytes, 10 numbers, [cracked](https://codegolf.stackexchange.com/a/99708/58563)
```
alert(0_6_4_>_0_2_0_7)
```
`_` is the hidden character.
### Hint about the intended solution
The character that needs to be changed to generate all numbers is always the same.
[Answer]
## JavaScript 21 Bytes, 10 Numbers [Cracked](https://codegolf.stackexchange.com/a/99817/43545)
```
alert(b_oa_"3____1"))
```
Unrevealed characters are marked with `_`
[Cracked](https://codegolf.stackexchange.com/a/99817/43545)
My Version:
```
alert(btoa|"3"&("1"))
alert(btoa|"3"^("1"))
alert(btoa|"3"^("0"))
alert(btoa|"3"^("7"))
alert(btoa|"2"^("7"))
alert(btoa|"1"^("7"))
alert(btoa|"0"^("7"))
alert(btoa|"0"^("8"))
alert(btoa|"0"^("8"))
alert(btoa|"2"^("8"))
```
[Answer]
## Python 3, 19 bytes, 10 numbers, [cracked](https://codegolf.stackexchange.com/a/99811/21487)
```
print(??bin()?????)
```
Unrevealed characters are marked with `?`. Tested in Python 3.5.2.
[Answer]
## Python 3, 16 bytes, 10 numbers, [cracked](https://codegolf.stackexchange.com/a/99872/21487)
```
print(?%??f?r?t)
```
Unrevealed characters are marked with `?`. This is probably a bit easy since there's only five question marks, but I'm hoping it'll be a fun one.
[Answer]
# C#, 90 bytes, 10 numbers, [cracked](https://codegolf.stackexchange.com/a/99977/54142)
```
using ______________________________________________;class C{static void Main(){_______;}}
```
I honestly have no idea how hard this is to crack.
Edit: Oops, transcription error. One `_` too few after `using`.
Now [cracked](https://codegolf.stackexchange.com/a/99977/54142) by [Hedi](https://codegolf.stackexchange.com/users/58765/hedi), who found the intended (barring the class name) solution.
[Answer]
## JavaScript 33 Bytes, 10 Numbers [Cracked x2](https://codegolf.stackexchange.com/a/100095/43545)
Oops I post posted my line for generating 10 Which Hedi [cracked](https://codegolf.stackexchange.com/a/100095/43545) as though it was for 1
```
alert(_to__"_Xc0__0_B6____Zp=="))
```
Version intended to post for generating 1
```
alert(_to__"_Xc0__0_Bf____Zp=="))
```
Unrevealed characters are marked with `_`
```
alert(btoa|"0Xc0"-0xBf|!("Zp=="))
alert(btoa|"0Xc0"-0xBe|!("Zp=="))
alert(btoa|"0Xc0"-0xBd|!("Zp=="))
alert(btoa|"0Xc0"-0xBc|!("Zp=="))
alert(btoa|"0Xc0"-0xBb|!("Zp=="))
alert(btoa|"0Xc0"-0xBa|!("Zp=="))
alert(btoa|"0Xc0"-0xB9|!("Zp=="))
alert(btoa|"0Xc0"-0xB8|!("Zp=="))
alert(btoa|"0Xc0"-0xB7|!("Zp=="))
alert(btoa|"0Xc0"-0xB6|!("Zp=="))
```
[Answer]
# Python, 10+ numbers, 61 bytes, [Cracked!](https://codegolf.stackexchange.com/questions/99547/code-ladder-robbers/100537#100537)
Here was the code I posted:
```
try:x
except:print(__import__('sys').??c??n??()[????b????e???
```
The original code was:
```
try:x
except:print(__import__('sys').exc_info()[2].tb_lineno)
```
Basically, it throws an error (`'x' is not defined`) and then prints the line the error was found on. So, just keep adding newlines at the beginning to increment the number.
I knew it wouldn't be hard to crack - I just wanted a funny way to print numbers - but I wasn't expecting Sp3000 to get it so fast, that's some pro skills!
[Answer]
# [Hexagony](https://github.com/m-ender/hexagony), 18 Bytes, 10 numbers, SAFE
This submission works for 1 - 10. Unrevealed characters are indicated with an underscore: `_`.
```
.__{_]5[$@.;=@$!!1
```
[You can try Hexagony online over here.](http://hexagony.tryitonline.net/)
# My solution:
```
1:   .<[{8]5[$@.;=@$!!10
2:   .<[{8]5[$@);=@$!!10
3:   2<[{8]5[$@);=@$!!10
4:   3<[{8]5[$@);=@$!!10
5:   4<[{8]5[$@);=@$!!10
6:   5<[{8]5[$@);=@$!!10
6:   7<[{8]5[$@);=@$!!10
8:   7<[{8]5[$@);=@$!!10
9:   8<[{8]5[$@);=@$!!10
10:  9<[{8]5[$@);=@$!!10
```
---
**Hex for output 1:**
[Try it Online!](http://hexagony.tryitonline.net/#code=ICAuIDwgWyAKIHsgOCBdIDUKWyAkIEAgLiA7CiA9IEAgJCAhIAogICEgMSAw&input=)
```
Full Hex:
  . < [ 
 { 8 ] 5
[ $ @ . ;
 = @ $ ! 
  ! 1 0
Important parts:
  . < .
 . 8 . 5
. $ @ . ;
 . . $ .
  . 1 .
```
1. At the `<` the memory edge is `0`, so it turns up.
2. Hits `1`
3. Jumps to `5`
4. Jumps over `8`, but is reversed at `<` and gets the `8` on the way back.
5. Hits `5` again
6. Jumps over `1`
7. Hits the `<` at this point, the memory value is 1585 which, mod 256, happens to be ASCII `1`
8. Finally prints and exits with `;@`.
---
**Hex for output 2:**
[Try it Online!](http://hexagony.tryitonline.net/#code=ICAuIDwgWyAKIHsgOCBdIDUKWyAkIEAgKSA7CiA9IEAgJCAhIAogICEgMSAw&input=)
```
Important parts:
  . < .
 . 8 . 5
. $ @ ) ;
 . . $ .
  . 1 .
```
This follows the same path, but on the way back it hits a `)` which increments the memory edge to 1586, or `2`.
---
**Hex for output 3-9:**
[Try it Online!](http://hexagony.tryitonline.net/#code=ICAyIDwgWyAKIHsgOCBdIDUKWyAkIEAgKSA7CiA9IEAgJCAhIAogICEgMSAw&input=)
```
Important parts:
  2 < [
 . . ] .
. $ . ) .
 . @ . !
  . 1 .
```
1. Hits the `2`
2. Now the memory edge is positive when it gets to `<`, so it turn down.
3. The `]` changes the instruction pointer, but is immediately comes back with `[`
4. `)` increments to `3`
5. `!` Prints `3`
6. `$` is left over from the first two numbers so we jump over the end (`@`)
7. `1` changes the memory edge, but that doesn't matter now.
8. `<` reflects the pointer back.
9. Again `1` doesn't matter because we hit `@` to end the program.
[Answer]
# 05AB1E, 11 bytes, [Cracked!](https://codegolf.stackexchange.com/questions/99547/code-ladder-robbers/99580#99580)
```
3628801__0_
```
Works from 1-10. `_` is a hidden character.
### Intended Solution:
```
3628801R¬¨0+ # 1
3628801R¬¨1+ # 2
3628801R¬¨2+ # 3
3628801R¬¨3+ # 4
3628801R¬¨4+ # 5
3628801R¬¨5+ # 6
3628801R¬¨6+ # 7
3628801R¬¨7+ # 8
3628801R¬¨8+ # 9
3628801R¬¨9+ # 10
```
[Answer]
# Octave, 24 bytes, 9 numbers, [cracked](https://codegolf.stackexchange.com/a/99606/24877)
```
_a__repmat(__one___,__)_
```
`_` is a hidden character.
(Inspired by @LuisMendo's [challenge](https://codegolf.stackexchange.com/a/99582/24877).)
[Answer]
# JavaScript, 9 bytes, 10 numbers, [Cracked](https://codegolf.stackexchange.com/a/99612/58765)
```
alert(__)
```
`_` is the hidden character.
[Answer]
# Octave, 25 bytes, 9 numbers. [Cracked](https://codegolf.stackexchange.com/questions/99547/code-ladder-robbers/99600#99600)
```
__a__repmat(__one___,__)_
```
`_` is a hidden character.
]