SHENZHEN I/O

SHENZHEN I/O

THE 99 HOLE
41 Comments
Cocoa 11 Aug, 2022 @ 4:30am 
Update: Optimized to 6/2990/16 and 14/2510/26.

Making a loop without jmp instruction can save a lot of power.
Cocoa 11 Jul, 2022 @ 11:34pm 
Solved in 6/4148/16 (O(n) time) and 14/2836/26 (O(logn) time)

You can get 2 nops in only 1 instruction by using gen p1 0 0 . This can help you save your lines of code.
Cocoa 11 Jul, 2022 @ 10:49pm 
Oh my god, if I map 1~26 to A~Z, the test case will be seen as a pangram:
1 17,21,9,3,11 2,18,15,23,14 6,15,24 10,21,13,16,19 15,22,5,18 20,8,5 12,1,26,25 4,15,7
A quick brown fox jumps over the lazy dog
Verdammte Heinz 4 Jun, 2022 @ 7:28am 
Solved it in 8/3994/19. Couldn't find the 6 cost solution yet, indeed need a nop like Brandonjohns96 to get the timing correct
craig 23 May, 2021 @ 4:52pm 
Solved it for 13/155k/34. Ay yi yi!
Spoilers craved.
Syvinna 30 Dec, 2019 @ 7:52am 
Awesome puzzle, I got the 6/4k5/17 one in the bag. Judging by the comments I could save a little more power but I am happy with the result :)
lisamariefan 11 Feb, 2019 @ 1:20am 
8/4.3k/20 for my solution. I really like how you gotta think about how to get the message through.
Moonj64 4 Nov, 2018 @ 7:19pm 
Good puzzle. My personal solution was 14/4159/25 but after reading these comments, I think I might be overthinking it. Gotta try that 6 cost solution next
ebik 2 Oct, 2018 @ 3:33pm 
Nice puzzle, I got the 6/x/16 solution down to 4212 power. For the power optimized solution I use binary encoding, I got 14/2662/27 I wonder if @ipg uses same encoding or does some other clever optimisation.
spoonlimit 30 Jul, 2018 @ 10:34pm 
Clever puzzle! Always fun to see ones that seem impossible at first.
brandonjohns96 28 Jan, 2018 @ 6:35am 
Very nice puzzle, got to 8/4210/18 after having to mash the e key a heap.
So close to getting the cost down to 6 but had to pad the end of the first module with 3 nops to get the timing right.
ipg 6 Jan, 2018 @ 7:39am 
My current bests are 16 lines of code and (separately) 2446 power. Both involving far too much thought and experimentation. In detail 6/4246/16 and 14/2446/25.
System1024 1 Feb, 2017 @ 10:58am 
Enycrption anyone?
BlueTJ 23 Dec, 2016 @ 1:33pm 
Crank these comments up a notch.
BlueTJ 23 Dec, 2016 @ 1:33pm 
Notch army inbound.
AKUN SCAMMER 11 Dec, 2016 @ 2:16pm 
Nice
Ghetu 2 11 Dec, 2016 @ 10:51am 
nice
sqhlight 11 Dec, 2016 @ 5:16am 
nice 6/4188/18
Eetu 10 Dec, 2016 @ 9:32am 
ok
Herald Gaming ❤ 8 Dec, 2016 @ 9:08pm 
Cool
Supboii 7 Dec, 2016 @ 3:27pm 
RFRS
Sir Lancelot 7 Dec, 2016 @ 2:51pm 
Fena
Falco[Ger] 6 Dec, 2016 @ 1:35pm 
I guess one can try to cut back on the power usage by sending the digits as a number of pulses. and then after the 10th input the other side just multiplies by 10. that way you would need 30 loops per number sent.
Falco[Ger] 6 Dec, 2016 @ 1:32pm 
I suppose it has to do with the fact that an analog signal is pulled to the highest input value.
But then you have to send multiple data points in bits in a single time unit. over a simple i/o. that involves a whole lot of timing and syncronisation.
what a pain.
Falco[Ger] 6 Dec, 2016 @ 1:27pm 
@andrewjp33 there are several Us in 'the qUick brown fox jUmps over the lazy dog.' there are also several other letters multiple times. you can still compress it rather nicely, if you use all lower case letters, you can get by with 26 combinations, which makes for a really nice 5 bit per letter, already saving 37% space.
leo3065 6 Dec, 2016 @ 9:58am 
Result: 8/4114/20
leo3065 6 Dec, 2016 @ 9:44am 
Really a briliant idea! Play a bit with the timing.
BlaXpirit  [author] 6 Dec, 2016 @ 8:26am 
@andrewjp33, 1. No glitches, just how the game works. 2. Well, sure, just drag a wire through the hole and use it to pass informaton. 3. No, only the most basic component is required. 4. Impossible to do withont communication, all tests are different.
andrewjp33 6 Dec, 2016 @ 8:13am 
I'm at a loss for how to solve it. Since it's possible by others, I presume one of these possibilities:
1. There is some glitch which can cause a simple input to be written to. Perhaps after >999 write attempts the logic will overflow and bend to your whim. This could explain the high power requirements in other solved solutions
2. There is a way to arrange components on the board that allows for communication between sides. I've tried all manner of tricks, but perhaps there's still something I'm missing
3. Perhaps there's a component that's required to solve the puzzle that must first be unlocked in the campaign.
4. Compression? Using huffman coding for example, you may be able to fit enough into rom modules, but the text doesn't seem highly compressable. The "a quick brown fox jumps over the lazy dog" text for example uses all 26 characters of the alphabet exactly once. Still, this seems the most likely candidate.

Anyone offering to help me know if one of my guesses is close?
鱿鱼LY 5 Dec, 2016 @ 7:56pm 
so boom:steammocking:
pv2b 4 Dec, 2016 @ 5:27am 
Wow, I just did this in the way I thought was obvious for 10/4306/30 yuan (after some optimizing). Then I realised I was overthinking it and did it in 6/4208/17. :-)
BFM 4 Dec, 2016 @ 3:11am 
Solved but the timing thing was pretty horrible :D
Alvis 3 Dec, 2016 @ 10:27pm 
i don't think so
La Vaca Saturno Saturnita 3 Dec, 2016 @ 6:48pm 
How? Do I just have to seed the values somehow without actually using alice?
tharko 3 Dec, 2016 @ 5:58pm 
Can be done with 6 cost and 17 lines of code
BlaXpirit  [author] 3 Dec, 2016 @ 12:28pm 
@Player1, the tests are the same every run and for every player. You can read about "seeding pseudorandom number generators" to see why the "random" function is totally reproducible. Power usage and all other scores are always comparable across players.
Player1 3 Dec, 2016 @ 12:20pm 
I have no idea how you would even fit parts for 14 bucks on that small board. :D But that low power usage, you got, is impressive. I suppose you found a more efficient way to serialize the signal. Serializing one digit at a time, or perhaps even bitwise, comes to mind. I might try that out.

However, I'm even more surpised that you have even beaten the power usage of my solution with the same production cost and number of lines. It makes me start to wonder whether every player actually gets the same sample I/O. The LUA script seems to randomly generate the sample data. But it seems the same sequence of data are used every time I simulate my designs. Otherwise, I would get different power usage results on every run, since the executed lines of code heavily depend on the input. Either I miss something or the power usage isn't comperable across players?
BlaXpirit  [author] 3 Dec, 2016 @ 10:13am 
@Player1, oh huh, how naive I was, thinking that ¥14 is the lowest possible cost. But oh well, at least I put that to good use, achieving 2658 power. Also got a ¥6 / 4072 / 18 solution after the epiphany you caused.
legit boy♡ 3 Dec, 2016 @ 10:12am 
noce
Player1 3 Dec, 2016 @ 9:44am 
Nice one! I first thought you try to troll with a puzzle that is impossible. But it actualy can be done. Though it seems I'm the only one who have it solved yet. I have two quite similar designs, one with 10/4.3K/20. and one 6/4.5K/18 (using a nasty trick to save two lines of code and therefore also poduction costs as you can use the smaller micro conmtroller, at the expense of power usage).
grasspound 3 Dec, 2016 @ 5:43am 
WHAT THE ACTUAL FUCK HOW