Wow, thanks for the feedback! I didn't think anyone but me would even play this. I changed a couple of mistakes in the manual and uploaded a new version. As for the overcomplication of basic data transfer - that is what it is. Once you understand how it works, the process will go faster. (anyway, is documentation in reality always clear and useful? :) ) I hope you try the rest of the levels!
P.S. the first level can be solved even without tis-3
I'm at the point now where I have to figure out how to pull in the 2 numbers and subtract them in the two different ways. I love Zachtronics' (even if I suck at them lol) and had an itch that needed to be scratched hahah
I'll check out the update! It's been really fun, and I get that the abstract documentation is really part of the whole experience, I just felt that there was a bit too much abstraction so trying to understand what was a wildcard and what was valid instruction was a bit tricky.
I'm making progress, and I'm too stubborn to give up yet. I'm stuck on interfacing not on math, so I can push through lol
[EDIT] You missed the typo on page 7: "INSTRUTIONS" is missing the 'C' ;)
I'm kinda confused about how to pass data from one TIS3 to the next. The instructions make it sound like you move the [01] (or whatever) number to C to accept that TIS3's input, however in my code [02] is sending 258?
[EDIT] Also, I realize there is a much MUCH easier way to do this, but I wanted to learn how to pass values around lol. My other solution only uses one TIS3 module
I don't quite understand what you mean, but I'll try to explain what's happening here: the send instructions can block execution (which is what happens, you can verify this by looking at the execution step by step). At the beginning [01] sends a number (at this iteration it was -85), then [02] sends -78, and [03] received it at the time of the screenshot. all numbers are always sent to register e. (register c changes the value to the sender index). i hope, this helped
Yeah, I think I just misunderstood the instructions. I thought that when you send, the receiving module would receive "3" as the value.
In the 2nd block of code in module [03] I had:
MOV C 2; Listen for send from [02]
MOV D 0; prep for recv
RECV
MOV B E; store value to register B
It was easy enough to figure out when I moved -1 to C to see what the ID actually was, though.
If I could make three minor suggestions:
1. Make the commands case-insensitive, so if you're coding in upper case it won't mess you up.
2. Allow PgUp/PgDwn in ht instructions to scroll faster
3. Remember where you left off in the instructions so you don't have to keep scrolling back to the area you want to read
1. They are already case-insensitive, just like labels. (if there is a counterexample, I'm ready to see)
2. you can scroll faster using ctrl+up/down, although not to the entire page. I'll think about adding pgup/pgdown, but there may be problems with it due to the fact that different terminals can remap key codes differently.
3. ok, I'll add this too when I have free time
Oh, i just misunderstood what you meant. I thought you were talking about assembly instruction names. I fixed this in the new version. My current keyboard doesn't have pgup/pgdown, so fast scrolling works through fn+up/down (which is basically the same thing as pgup/down, probably). Now shortcuts work with capslock (except for ctrl/shift+arrows. instead of them you get regular arrows. Unfortunately, this is how the backend works and i don't know how it can be fixed). Saving indentation on manual pages only works if you open the same page as last time (i think this makes more sense than saving indentation on all pages)
UPD: forgot to say, you can simply transfer the default_player folder to new versions to transfer saves, instead of solving the tasks second time (if it was not obvious).
Oh yeah, sorry - ctrl up/dn works. So that's fine.
Some of the tasks need to be updated a bit, I think. Many flip in/out, such as:
Puzzle: 002_diff: I think your in/out are flipped. It's easy to understand, though
1. Read values from in[0] and in[1] 2. Write in[0] - in[1] to out[0] 3. Write in[1] - in[0] to out[1]
Also, puzzle: 005_sequences: Step 3 should probably just say "Write the sum of the sequence to in[1]"
3. Write the largest element of sequence to out[2]
It sounds like you just want it to pull the largest number from the sequence and output back to the I/O module... which was how I had tried to solve it at first lol:
I hope you don't mind my critiquing, none of it is really anything game-breaking. I mean, I've made it this far without any major trouble once I figured out the basics lol
No, on the contrary, i'm glad that someone has some fresh perspective and criticism of the game. I'm ready to accept bug reports / feature requests. I'll fix this later, because I don't want to get distracted by every little thing, fix it and re-upload the game. It's easier to release a big bug fix at once. So for now I'll wait for new messages. Have a good game. If you make it to the end, I'll make a new level pack with a couple of new mechanics. I initially had a couple of ideas for new mechanics, but decided to finish the game at 24 levels because i didn’t want to delay development
Nice! We'll see how far I get lol. I'm on Puzzle 6. I like how it unlocks a few more puzzles into the future so if I get stuck, I can still move on and try some other ones out. I also like how fairly straight-forward it is to create your own levels... speaking of which, I got something in the works for you :)
👀 🤣
dude, did you think there would be something here? Ohh no...
It's barely even a puzzle lol. @io441 @in 13 02 20 11 12 22 10 15 07 08 06 03 05 26 17 24 15 00 27 21 16 01 18 -99 27 05 15 08 21 00 21 -99 07 17 26 11 21 12 02 08 15 05 10 16 03 06 00 -99 10 15 03 05 00 21 07 25 -99 25 03 13 15 11 27 00 08 26 01 18 12 10 16 17 02 21 05 24 -99 -99 14 11 13 12 -99 11 14 -99 13 -99 12 -99 11 13 12 14 -99 -99 20 08 10 01 09 16 23 22 13 12 19 17 24 00 02 -99 22 10 18 20 12 04 06 00 24 14 16 -99 14 12 27 24 28 04 26 18 22 00 09 23 05 20 10 08 16 06 -99 10 22 18 00 05 12 20 08 24 14 16 -99 12 08 05 01 09 16 20 22 18 02 14 10 00 24 -99 -99 00 01 02 03 05 06 09 14 15 -99 00 05 07 15 14 03 09 -99 00 11 10 01 15 02 05 06 09 14 07 03 -99 11 09 02 07 00 -99 00 05 11 09 06 07 15 14 03 -99 -99 -99 15 05 14 08 22 12 00 02 01 18 20 26 19 24 29 04 16 23 -99 22 20 09 06 26 00 04 18 29 02 11 14 -99 00 22 02 23 15 28 30 20 06 27 26 16 04 05 14 01 29 10 18 19 24 -99 22 27 04 02 26 24 20 18 30 00 11 29 28 09 06 16 -99 04 18 12 27 05 16 15 19 20 23 28 02 14 22 00 29 24 08 -99 @end @out 13 02 20 11 12 22 10 15 07 08 06 03 05 26 17 24 15 00 27 21 16 01 18 -99 27 05 15 08 21 00 21 -99 07 17 26 11 21 12 02 08 15 05 10 16 03 06 00 -99 10 15 03 05 00 21 07 25 -99 25 03 13 15 11 27 00 08 26 01 18 12 10 16 17 02 21 05 24 -99 -99 14 11 13 12 -99 11 14 -99 13 -99 12 -99 11 13 12 14 -99 -99 20 08 10 01 09 16 23 22 13 12 19 17 24 00 02 -99 22 10 18 20 12 04 06 00 24 14 16 -99 14 12 27 24 28 04 26 18 22 00 09 23 05 20 10 08 16 06 -99 10 22 18 00 05 12 20 08 24 14 16 -99 12 08 05 01 09 16 20 22 18 02 14 10 00 24 -99 -99 00 01 02 03 05 06 09 14 15 -99 00 05 07 15 14 03 09 -99 00 11 10 01 15 02 05 06 09 14 07 03 -99 11 09 02 07 00 -99 00 05 11 09 06 07 15 14 03 -99 -99 -99 15 05 14 08 22 12 00 02 01 18 20 26 19 24 29 04 16 23 -99 22 20 09 06 26 00 04 18 29 02 11 14 -99 00 22 02 23 15 28 30 20 06 27 26 16 04 05 14 01 29 10 18 19 24 -99 22 27 04 02 26 24 20 18 30 00 11 29 28 09 06 16 -99 04 18 12 27 05 16 15 19 20 23 28 02 14 22 00 29 24 08 -99 @end @end @info Use IO outputs to light up a JBM sign. -99 indicates the end of a vertical line. Return the same numbers back to the IO @end