Beginner's Guide for SHENZHEN I/O
HTML-код
- Опубликовано: 6 окт 2016
- For this video, I went over the basics of Shenzhen I/O (with help from the manual). This video is meant for new players and goes over the solutions to the first three puzzles, while talking about the logic and important pages of the manual. If there's interest and I can figure it out, I'll be happy to make more advanced guides in the future.
Shenzhen I/O is currently on Early access and you can buy it here:
store.steampowered.com/app/504...
--
Subscribe and Check Out:
Visit Game-Wisdom.com for posts and podcasts on all things Game Industry related.
You can follow me at the following places:
Subscribe on Twitch under / gwbycer for daily plays around 10 est.
Subscribe on Twitter: / gwbycer to get the latest updates when new content goes live all around.
Subscribe on Facebook here: / gamewisdom
You can find me on Patreon under Game-Wisdom or by this link : / gwbycer any donations would be greatly appreciated in order to allow me to continue to put out great content.
About Me:
I'm Josh Bycer and I run the site Game-Wisdom, where I examine the art and science of games. Here on RUclips, I put out a variety of videos that consists of let's plays, examinations and more. Игры
I'm already proud I finished the first level...
Butt I'm 10!
I love this game and after 1 year im still playing it. Mostly just the solitaire though because ive been stuck on the neon sign puzzle forever! Lol. Have 40 plus wins in solitaire though. EDIT: I beat the neon sign puzzle last night! Yeah!
The most straightforward puzzle after you got the basics imo.
@@Artrm yeah after i solved it i realized how simple it was. Still noo need to be an ass about it, i was just overthinking it.
@@tuff-gs3xy 👎
I'm going to go ahead and put this game in my resume
My computer science professor for computer architecture and assembler loves this game
If they haven't seen it yet, TIS-100 is another Zachtronics title built on programming-based challenges.
I had no programming background at all! but this video helped me a lot to play this game, and learn some things about programing,
it's very nice to learn this things, thanks dude!
For the Pulse Generator here's a version that uses only 6 instructions...
- slp 1
teq p0 100
+ mov p0 p1
+ slp 1
+ mov 0 p1
+ slp 1
-I can not see any other way to make this more efficient!- Let me know what you think. It costs 3Y, uses 6 lines of code and consumes 142 power units.
*Edit*
After looking at the above. We can eliminate 1 instruction and get our power down from 142 to 141... It doesn't seem obvious at first, but the very last sleep command is not needed if and only if the very first sleep is non-conditional. We can improve the above by making this change:
slp 1
teq p0 100
+ mov p0 p1
+ slp 1
+ mov 0 p1
This I believe is the most efficient algorithm to generate the desired pulse or wave generator...
Here's the Pseudo Algorithm:
Sleep to move the clock
check if input is high
if input is high
transfer p0 to p1 for 1 sec then move 0 to p1 and done.
It will automatically sleep for 1 second and repeat only when the input line is high.
This is a little caveat and it shouldn't make much of a difference but I noticed that for the code section that is to be executed when the input from the button is high... many people are using this command for their implementation:
+ mov 100 p1
Instead of explicitly stating for p1 to be high or 100, I'm using:
+ mov p0 p1
Where this relies on the button being pressed, and I'm just allowing the current from the pressed button to flow through to the output for 1 second then toggle it back to 0.
Also with this particular circuit, if you move the slp command from the top to the bottom...
slp 1
teq p0 100
+ mov p0 p1
+ slp 1
+ mov 0 p1
To this:
teq p0 100
+ mov p0 p1
+ slp 1
+ mov 0 p1
slp 1
They will produce the same exact behavior and result, same amount of instructions, however, the second implementation does draw 1 extra power usage. The first uses 141, while the second uses 142... can you guess or figure out why? Let me know what you think!
The one thing I admire about this game is that the music is very relaxing.
I just picked this game up. The manual is genius. Anyone who has ever looked up a spec sheet for an electronics part will immediately make the connection
Thank you for this. It considerably helped a lot
I would have been stuck forever without this tutorial. I wanted to use the first MCU to control both LEDs by either moving the Network LED to the first board, or running a simple jumper wire from P1 to the second board. The ways of the East are truly mysterious!
Regarding the "bridge", it's is a passive component that allows you to cross wires without connecting them. Needed when you have larger boards and more components
32:46 maybe remove the plus in front of the first sleep and get rid of the second sleep command to use less power? I'm just guessing...
This is pretty great, didn't know labels and jmp breaks out of conditionals.
I finished the security camera puzzle and cracked it easily, took me ten minutes to get it.
*The next level was not so easy for me*
s a m e
teq p0 100
+ mov 100 p1
+ slp 1
+ mov 0 p1
- mov 0 p1
slp 1
This can limit power usage to 164.
Here is what I did...... It lowers the power to 142
teq p0 100
+ mov 100 p1
+ slp 1
+ mov 0 p1
slp 1
Basically, you don't need the "-" line because it breaks out to the slp 1 anyway as soon as it doesn't equal 100... enjoy :)
You dont need start from teq, because there is 0 at start. Move last slp 1 to first line, this give you 141 power usage and this is fastest possible solution :d.
slp 1
teq p0 100
+ mov 100 p1
+ slp 1
+ mov 0 p1
I have a similar solution, however, my first move isn't 100 to p1 I just moved p0 to p1 since the signal is high, just let it fall through... other than that pretty much identical...
slp 1
teq p0 100
+ mov p0 p1
+ slp 1
+ mov 0 p1
This was so helpful the moment I saw that PDF I shit myself but this video has got me interested in reading it
half of almost every zachtronics game is just reading the manual ;)
The pulse puzzle. The true/false sleep cancel each other simplify that and then I have no idea where your friend got the less power usage still unless he used a different hardware component
can you please tell me how you dragged the parts? I can drag them from the menu at the right onto the baord but after that I can't move them anymore.
Grab by the orange "acc/state/power" icon area, the mouse cursor will change to a cross.
When you have:
+command
-command
You can replace it with just:
command
and you'll save some power.
So in your case, you could have shorted the third puzzle to:
teq p0 100
+mov 100 p1
+slp 1
+mov 0 p1
slp 1
5 lines instead of 6.
But the last "slp 1" doesn't it always executed by the program, that's why he uses "- slp1".
@@farhansyihab it needs to sleep either way, whenever you have the same command twice with a + and a -, you can just replace it with a single normal command because it is needed to perform the operation either way. hope this was understandable. cheers
Technically this isn't always true, the tcp instruction can get you into a state where both +/- instructions are not active, but regular instructions are active. (I think.)
i would like some other videos like advenced guild, i want to understand everything xD
how do you know if you're supposed to use the "x0 plug or p0" and "p1 plug or x1
The p0 are the simple input/output and the x0 are the xbus operators. The Xbus requires something to be sending data and something receiving data to work.
Game-Wisdom ok thanks
This is a cute little teaching tool.
This video was brought to you by Hank from Breaking Bad
22:10 my question would be, why did you start with 100? why not 1 or 50, ect?
'teq p0 100' tests to see if pin 'p0' is equal to 100. Putting 1 or 50 would test to see if 'p0' is equal to 1 or 50, etc. The issue is that the button that is connected to 'p0' will always be either 100 or 0. So, testing for other values that aren't 100 (or 0) wouldn't do anything since the button won't ever be set to those values. You can see this in the verification graph for 'button'
@@klaadem got it! Thanks!
how about nested conditionals?
I had a feeling someone was going to ask about that. I tried doing that off recording on a later puzzle and I was having trouble getting that working. The first conditional seemed to take over and it wasn't changing for the second, but I want to try that again to see if I messed up in the logic.
awesome, i will follow you...
You'll need to put the second condition in a loop. Skip the loop by default, and if the first condition is met, then if the first condition is met, jump in the loop. Then put the second condition in the loop, if it's met, continue, if not, jump out of the loop.
You can't nest conditionals, but you can jmp to a skip over the next conditional and I believe tcp 1 1 resets as it returns disabled to both positive and negative commands
I just got mind fucked
A-RITH-MATIC :P
The problem with the handbook is it lack examples.
Yeah, I agree with that. I find it far easier to learn these concepts if I can see it in action at the same time.
Third one, remove the -slp and the final +slp andi just put a slp not in the conditional that will drop the commands by 1,
@26:26 - if you want the sleep condition to be true in both positive and negative test condition just remove the qualifier and save yourself a line, have it slp 1 100% of the time instead of testing for that condition.
Basically just replace
+ slp 1 and
- slp 1 with just
slp 1
I have no knowledge about coding... I am still gonna nail this... without the manual, for the same reason I never go two times from the car to the house with a shitton of shopping bags ;P
ArithEmetic? LOL
bro sounds like the nerd emoji
"wet your whistle"...... WUT DA LITERAL FUCK BRO! don't you EVER use that term again....... eww.... GROSS! 0_0
BTB... interesting concept for a chan. :P not like there aren't what.... 9,458,679 1/2 fuckin channels JUST LIKE IT on the tubez. But hey wth.. you seem safe to me :D sure! i'll go for a ride with you in your candy van :D