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.
  • ИгрыИгры

Комментарии • 60

  • @dankusmemus4434
    @dankusmemus4434 7 лет назад +105

    I'm already proud I finished the first level...

  • @Krondelo
    @Krondelo 5 лет назад +66

    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!

    • @Artrm
      @Artrm 3 года назад +1

      The most straightforward puzzle after you got the basics imo.

    • @Krondelo
      @Krondelo 3 года назад +24

      @@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.

    • @gloooby6157
      @gloooby6157 8 месяцев назад

      @@tuff-gs3xy 👎

  • @inb4play167
    @inb4play167 2 года назад +6

    I'm going to go ahead and put this game in my resume

  • @warrior100girl
    @warrior100girl 6 лет назад +23

    My computer science professor for computer architecture and assembler loves this game

    • @Game-wisdom
      @Game-wisdom  6 лет назад +2

      If they haven't seen it yet, TIS-100 is another Zachtronics title built on programming-based challenges.

  • @brenomacedo6134
    @brenomacedo6134 7 лет назад +21

    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!

  • @skilz8098
    @skilz8098 3 года назад +6

    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!

  • @thenineinchnailer5674
    @thenineinchnailer5674 7 лет назад +3

    The one thing I admire about this game is that the music is very relaxing.

  • @ObscenePlanet
    @ObscenePlanet Год назад +1

    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

  • @ProjektBurn
    @ProjektBurn 2 года назад +1

    Thank you for this. It considerably helped a lot

  • @mike_98058
    @mike_98058 3 года назад

    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!

  • @ronsargeant8371
    @ronsargeant8371 4 года назад +2

    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

  • @druze3210
    @druze3210 5 лет назад +5

    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...

  • @Cosmitzian
    @Cosmitzian 6 лет назад

    This is pretty great, didn't know labels and jmp breaks out of conditionals.

  • @Hallwo_333
    @Hallwo_333 5 лет назад +12

    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*

  • @syoushiro1837
    @syoushiro1837 7 лет назад +15

    teq p0 100
    + mov 100 p1
    + slp 1
    + mov 0 p1
    - mov 0 p1
    slp 1
    This can limit power usage to 164.

    • @jromeplays
      @jromeplays 7 лет назад +5

      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 :)

    • @KruK666PL
      @KruK666PL 7 лет назад +6

      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

    • @skilz8098
      @skilz8098 3 года назад

      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

  • @monstermonty9074
    @monstermonty9074 2 года назад

    This was so helpful the moment I saw that PDF I shit myself but this video has got me interested in reading it

    • @Game-wisdom
      @Game-wisdom  2 года назад

      half of almost every zachtronics game is just reading the manual ;)

  • @kylel8605
    @kylel8605 Год назад

    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

  • @biggbarbarian224
    @biggbarbarian224 5 лет назад

    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.

    • @ronsargeant8371
      @ronsargeant8371 4 года назад

      Grab by the orange "acc/state/power" icon area, the mouse cursor will change to a cross.

  • @Liwet.
    @Liwet. 5 лет назад +19

    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.

    • @farhansyihab
      @farhansyihab 3 года назад

      But the last "slp 1" doesn't it always executed by the program, that's why he uses "- slp1".

    • @kylematlock7499
      @kylematlock7499 3 года назад

      ​@@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

    • @nokkonokko
      @nokkonokko 2 года назад

      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.)

  • @maximefleury4455
    @maximefleury4455 7 лет назад

    i would like some other videos like advenced guild, i want to understand everything xD

  • @LegendJDDoesGames
    @LegendJDDoesGames 7 лет назад +1

    how do you know if you're supposed to use the "x0 plug or p0" and "p1 plug or x1

    • @Game-wisdom
      @Game-wisdom  7 лет назад +1

      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.

    • @LegendJDDoesGames
      @LegendJDDoesGames 7 лет назад

      Game-Wisdom ok thanks

  • @Kinos141
    @Kinos141 4 года назад

    This is a cute little teaching tool.

  • @samjimenez8713
    @samjimenez8713 11 месяцев назад

    This video was brought to you by Hank from Breaking Bad

  • @seniorpz1969
    @seniorpz1969 Год назад

    22:10 my question would be, why did you start with 100? why not 1 or 50, ect?

    • @klaadem
      @klaadem Месяц назад +1

      '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'

    • @seniorpz1969
      @seniorpz1969 26 дней назад

      @@klaadem got it! Thanks!

  • @Ederitos
    @Ederitos 7 лет назад +1

    how about nested conditionals?

    • @Game-wisdom
      @Game-wisdom  7 лет назад +2

      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.

    • @Ederitos
      @Ederitos 7 лет назад

      awesome, i will follow you...

    • @jackliu8492
      @jackliu8492 7 лет назад +2

      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.

    • @thearrowhead9846
      @thearrowhead9846 5 лет назад +2

      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

  • @noelio67
    @noelio67 7 лет назад +1

    I just got mind fucked

  • @JaiPritchett
    @JaiPritchett Год назад

    A-RITH-MATIC :P

  • @PetionC
    @PetionC 2 года назад +1

    The problem with the handbook is it lack examples.

    • @Game-wisdom
      @Game-wisdom  2 года назад

      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.

  • @mpforste
    @mpforste 4 года назад +1

    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,

  • @stormy_waters83
    @stormy_waters83 6 лет назад +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

  • @Jumptownwore
    @Jumptownwore 2 года назад

    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

  • @cosmickidd3089
    @cosmickidd3089 6 лет назад

    ArithEmetic? LOL

  • @obsidiancat1217
    @obsidiancat1217 Год назад +1

    bro sounds like the nerd emoji

  • @ZetaReticulian
    @ZetaReticulian 7 лет назад

    "wet your whistle"...... WUT DA LITERAL FUCK BRO! don't you EVER use that term again....... eww.... GROSS! 0_0

    • @ZetaReticulian
      @ZetaReticulian 7 лет назад

      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