Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Locked thread
Alkydere
Jun 7, 2010
Capitol: A building or complex of buildings in which any legislature meets.
Capital: A city designated as a legislative seat by the government or some other authority, often the city in which the government is located; otherwise the most important city within a country or a subdivision of it.



GuavaMoment posted:

Yeah so this game. I think I now understand how everyone else feels when looking at SpaceChem leaderboards. I'm more than happy to simply solve and maybe tweak my terrible solutions a little bit, because there is no way I'm catching up to you wizards.

Ahahaha! Feel the stupid! Revel in how us mere mortals feel!

Now, imagine feeling like that on all three games AND having WildM on your friendslist. :suicide:

Adbot
ADBOT LOVES YOU

ymgve
Jan 2, 2004


:dukedog:
Offensive Clock
Speaking of friends lists, anyone want to become my friend so we can compare scores? http://steamcommunity.com/id/threedotonefour/

edit: I pressed "ignore" on one of you by accident and I don't recall the name. If you sent me an invite and didn't get accepted, try again.

ymgve fucked around with this message at 15:35 on Jun 11, 2015

Megabound
Oct 20, 2012

ymgve posted:

Speaking of friends lists, anyone want to become my friend so we can compare scores? http://steamcommunity.com/id/threedotonefour/

Hell yea!

I don't have anyone to compare to either, so I'd be glad for some more names to show me how terrible I am. http://steamcommunity.com/id/megabound/

I've taken one subject in programming (MATLAB) as part of my engineering course and I'm so hooked on this game. I've sunk 11 hours and only finished the first 2 lines. Just I keep on going back and refining.

I hit a wall with Spacechem at one of the bosses and stopped playing. It'll be interesting to see where or if I hit a wall in this.

Megabound fucked around with this message at 15:18 on Jun 11, 2015

Phssthpok
Nov 7, 2004

fingers like strings of walnuts
Add me to your friends list: http://steamcommunity.com/id/myhf/

And tremble in fear as I keep track of my position in a list, instead of starting from the beginning every time:

VictualSquid
Feb 29, 2012

Gently enveloping the target with indiscriminate love.
So, is this game like Infinifactory, where you can solve every puzzle with a stupid, slow and overbuild solution? Or more like Spacechem where you can get totally stuck if you aren't smart enough?

Tzarnal
Dec 26, 2011

You can certainly solve many puzzles with a stupid overbuilt solution but the limitations of how many instructions are in a node and nodes available do put a limit to how far you can go with that.

Alkydere
Jun 7, 2010
Capitol: A building or complex of buildings in which any legislature meets.
Capital: A city designated as a legislative seat by the government or some other authority, often the city in which the government is located; otherwise the most important city within a country or a subdivision of it.



Goddamnit game, I figured out a solution, it's not my fault that your randomized test input has numbers that cause a fault. :negative:

Color Printer
May 9, 2011

You get used to it. I don't
even see the code. All I see
is Ipecac, Scapular, Polyphemus...


This game. It was made for me. Made for me. It is also my personal hell. Junior year is haunting me, as are my college failures.

Vlad the Retailer posted:

You can move values back where they came from (ex. MOV LEFT, LEFT), which can be used to turn nodes into single-use registers.

Alright, someone's gonna have to explain this to me.

Arcsech
Aug 5, 2008

Color Printer posted:

This game. It was made for me. Made for me. It is also my personal hell. Junior year is haunting me, as are my college failures.


Alright, someone's gonna have to explain this to me.

I've found this incredibly useful. If you have a node that's just "mov dir dir", if you mov a value into it, it'll just sit there until the original node asks for it.

For example, if you wanted to have a node that took two numbers and moved the first (from up) down if it's less than the second (from right), you could do it like so:
code:
 
S:MOV UP ACC 
MOV ACC LEFT # put the value in our faux register 
SUB RIGHT 
JLZ LT
MOV LEFT DOWN 
JMP S
LT:MOV LEFT NIL # need to clear our faux register, or when we try to write to it again it'll block forever

Qwarq
Apr 3, 2009

Assembly was pretty much my favorite coding course in college, so this poo poo is right up my alley. Bought it because of this thread and no regrets whatsoever. It's the only game that's managed to pull me away from Splatoon for the last two weeks. :v:

I too need more friends to compare over-optimized solutions with http://steamcommunity.com/id/qwarq/

Arcsech posted:

I've found this incredibly useful. If you have a node that's just "mov dir dir", if you mov a value into it, it'll just sit there until the original node asks for it.

For example, if you wanted to have a node that took two numbers and moved the first (from up) down if it's less than the second (from right), you could do it like so:

That's pretty drat clever but, dammit, now I need to do another optimization pass with that in mind.

Color Printer
May 9, 2011

You get used to it. I don't
even see the code. All I see
is Ipecac, Scapular, Polyphemus...


Arcsech posted:

I've found this incredibly useful. If you have a node that's just "mov dir dir", if you mov a value into it, it'll just sit there until the original node asks for it.

I just figured that out, but thanks for showing how it's useful since when I did it, I paused and went "wait, this doesn't help me here, really." :v:

Moog
Sep 14, 2013
I swear, every time I get into one of these Zachtronics games before I even have the chance to figure out the basics, someone else has already gone HAM in the sandbox doing stuff that I won't even understand by the time I finish the game-provided puzzles.

GuavaMoment
Aug 13, 2006

YouTube dude

Moog posted:

I swear, every time I get into one of these Zachtronics games before I even have the chance to figure out the basics, someone else has already gone HAM in the sandbox doing stuff that I won't even understand by the time I finish the game-provided puzzles.

Wizards :argh:


uXs
May 3, 2005

Mark it zero!
Ignoring things that are clearly impossible, seeing my exposure mask viewer solution draw poo poo is immensely satisfying.


edit: signal window filter down. suck it bitches. (I don't understand how it works, but it does and that's all that matters.)

uXs fucked around with this message at 14:00 on Jun 13, 2015

Hemingway To Go!
Nov 10, 2008

im stupider then dog shit, i dont give a shit, and i dont give a fuck, and i will never shut the fuck up, and i'll always Respect my enemys.
- ernest hemingway
This game's pretty hardcore old school
no narrated tutorial, text graphics, and a fourteen page manual, good luck!
Like it could only feel more like an old computer game more if the manual had copy protection codes to enter before the title screen.
How'd you guys get cracking on this so fast.

Hemingway To Go! fucked around with this message at 04:58 on Jun 14, 2015

Phssthpok
Nov 7, 2004

fingers like strings of walnuts
The highlighted passage in the manual pointing you toward the secret level felt kind of like an old-school copy protection code.

ActionZero
Jan 22, 2011

I act once more in
imitation of light
Holy gently caress this game was made for me. I love it and want to marry it and I've only done two levels so far.

(Maybe this will be the Zachtronics game I can actually be good at, ahaha no)

Broken Cog
Dec 29, 2009

We're all friends here
Just got done with the Sequence Peak detector, and it was the first time in the game I ran into a problem where the row and storage limits in each node became an issue.


I'd love to see an actual clever solution to this one if anyone has it. I assume I could've used the "Faux register" method posted earlier, but I hadn't seen that post when I did this.

Broken Cog fucked around with this message at 20:28 on Jun 15, 2015

Jostiband
May 7, 2007

I really like this game because it allows me to pretend I'm very creative at coming up with very inefficient solutions for simple problems, as opposed to being the world's worst programmer. :negative:

Fuzzy Mammal
Aug 15, 2001

Lipstick Apathy

Broken Cog posted:

Just got done with the Sequence Peak detector, and it was the first time in the game I ran into a problem where the row and storage limits in each node became an issue.


I'd love to see an actual clever solution to this one if anyone has it. I assume I could've used the "Faux register" method posted earlier, but I hadn't seen that post when I did this.

Caveat I'm not an expert or anything, but here are my tips. I'm especially interested in Peak detector as it's the level where my friends have the biggest relative score advantage over me so I've rewritten it several times in attempts to improve it.


1) This one more than most levels really can make use of that faux register pattern, fyi

2) You have lots of space, you should consider splitting up the logic much more if possible. For example split up:
- Spreading the values to the different pipelines
- Recognizing zero
- Comparing to the current min/max
- Storing the current min max

3) Reduce instruction repetition. I notice in your first node you repeat move down + move right (or right then down, equivalently) quite a lot. Some of those repetitions can probably be factored above the jez check.

4) I'm spoilering this, since it's almost cheating, but the jro command is by far the most powerful of them all. It allows you to create functions, and use your instruction position within a block as a second variable.

edit: 5) Little things count, such as ensuring you only jump when you have to, which is one instruction more than letting the code wrap around the bottom. So for this puzzle, zeros are less frequent than nonzeros, so make sure to use jnz so that once you're done receiving the new value you don't have to jump to the top, you only do that on the less frequent 0 inputs.



OK now for some example solutions. Here is my first one that I did the day I got the game:

The basic idea is I pass the current value and new value around twice, and throw out the result that I don't want.
The first thing you see is I'm not following tip number 4 yet. I'm also doing a lot in the second nodes. Both comparing with zero, communicating with the node that maintains the minimum, resetting that child node, and passing the final value down.

This solution is 375 cycles, not bad for a first try.

Here's number two

So this solution uses JRO. The first node splits the signal, and the second one checks for zero and sends the appropriate offset to the next node, which sits in the cmd label most of the time. You can save on jmp commands a lot by ordering your labels too. After a reset you will always save, and after a flush you will always reset. This solution still sends the value twice and discards one input depending on which is smaller.


I'm not actually too happy with it, even though it's 346, several cycles faster. I've gotten a 345, and the high score on my friends list is a significantly faster 295.


Anyways, hope this helps.



Does anyone have any scores they're really proud of? I am most pleased with my solutions for

Sequence Generator @ 101 cycles
Interrupt Handler @ 172 cycles
Sequence Reverser @ 286 cycles
Histogram viewer @ 2078 cycles
Window Filter @ 428 cycles and
Sequence Indexer @ 1195 cycles

Fuzzy Mammal fucked around with this message at 04:53 on Jun 16, 2015

GuavaMoment
Aug 13, 2006

YouTube dude

Fuzzy Mammal posted:

Peak detector
I'm not actually too happy with it, even though it's 346, several cycles faster. I've gotten a 345, and the high score on my friends list is a significantly faster 295
Does anyone have any scores they're really proud of? I am most pleased with my solutions for

Peak detector, 27 cycles. :smug: 363 for my non-cheaty solution
Exposure Mask Viewer: solved and 2nd on my friends' list somehow at 736 cycles. That was very close to being a Not Fun Level.

Fuzzy Mammal
Aug 15, 2001

Lipstick Apathy
Ok I rewrote it one more time and got it to 329. Less passing of values around.

Fuzzy Mammal
Aug 15, 2001

Lipstick Apathy

GuavaMoment posted:

Peak detector, 27 cycles. :smug: 363 for my non-cheaty solution
Exposure Mask Viewer: solved and 2nd on my friends' list somehow at 736 cycles. That was very close to being a Not Fun Level.

Nice. I have 569 on the mask viewer :smugmrgw:. I'm pretty stumped with the sorter though. I've tried several approaches and need to take a break.

Dr. Stab
Sep 12, 2010
👨🏻‍⚕️🩺🔪🙀😱🙀

GuavaMoment posted:

Peak detector, 27 cycles. :smug: 363 for my non-cheaty solution
Exposure Mask Viewer: solved and 2nd on my friends' list somehow at 736 cycles. That was very close to being a Not Fun Level.

22 on peak detector for me. Also, 100 on prime detector when that was still around.

thehustler
Apr 17, 2004

I am very curious about this little crescendo
Can the Signal Amplifier be moved to 3 core operation? I have 2 working nice and sweet, but when I try and do 3, because of the error nodes I have to force 2 of the 3 codes through a single node on their way to the final output node, and sometimes that causes issues.

You also don't always get stuff going through at the right time leading to out-of-sequence errors.

deptstoremook
Jan 12, 2004
my mom got scared and said "you're moving with your Aunt and Uncle in Bel-Air!"
I'm really digging TIS-100, but--and I say this with all love--it's the sorriest excuse for a "game" I've ever played. At least SpaceChem had colors and animations so you could kind of pretend you were playing something other than an edutainment computation/logic puzzle game. I guess it was inevitable that Zachtronics would release a game with even fewer frills and distractions from the real core of their puzzle design philosophy.

The peak detector is killing me, but I just figured out how to test for min in an n-length list. Yay!

thehustler
Apr 17, 2004

I am very curious about this little crescendo
Signal Edge Detector is kicking my arse.

Prenton
Feb 17, 2011

Ner nerr-nerrr ner
Update with puzzle creator has just dropped.

There's something perverse about having to learn Lua to wrote your assembly-language-game problem

Color Printer
May 9, 2011

You get used to it. I don't
even see the code. All I see
is Ipecac, Scapular, Polyphemus...


Does anyone know the new undocumented opcode?

90s Cringe Rock
Nov 29, 2006
:gay:

Prenton posted:

Update with puzzle creator has just dropped.

There's something perverse about having to learn Lua to wrote your assembly-language-game problem
The final puzzle is recreating the entire game from scratch in TIS-100 assembly, running on a bunch of arduinos which each function as a node.

There's an amusingly angry thread on the Steam forum where someone is upset that it's a Unity game. :allears:

Edit: the new opcode is going to be really useful, it definitely fits my coding style. Well I guess if you really want to know(opcode spoiler -->)it's HCFand reboots the system.

90s Cringe Rock fucked around with this message at 19:28 on Jun 16, 2015

Wild M
Oct 19, 2007

Assignment Complete! REACTION ERROR: Collisions between atoms are not allowed in reaction programs. The reaction will now be stopped.
I'm also curious about the new opcode. Did they add something in the game to hint at it?

Prenton
Feb 17, 2011

Ner nerr-nerrr ner
Not that I know of. A guy on Reddit dropped a big hint that let me get it though

Hint
It's a fairly well-known "joke" opcode

Actual answer
HCF

thehustler
Apr 17, 2004

I am very curious about this little crescendo
Right, Signal Edge Detector.

http://tis100pad.com/134

I have a block of (really bad) code that successfully moves the ABS difference between the last two values to the node below. I now need to see if that number is greater than 10, and I have no idea how to do it. All I know is I can compare to zero. I guess I need some kind of loop but I'm struggling. Frankly I can't believe I made it this far!

Dr. Stab
Sep 12, 2010
👨🏻‍⚕️🩺🔪🙀😱🙀
You can subtract and add immediate values.

e:vvvv You should add some people to your friends list. The best on the goon group is 200, and the best on reddit is 133.

Dr. Stab fucked around with this message at 20:51 on Jun 16, 2015

ActionZero
Jan 22, 2011

I act once more in
imitation of light
Playing this is so weird after SpaceChem, I didn't really ever get how to optimise in that until I watched solutions for the tournament a while back and even then I didn't properly get it.

Meanwhile I've only done three levels in this and I just spent some time playing with Differntial Converter to knock 1 off my best cycle count to get 202 (which I think is the fastest possible, I can't quite tell if anyone is lower than my on the histogram).

thehustler
Apr 17, 2004

I am very curious about this little crescendo

Dr. Stab posted:

You can subtract and add immediate values.

Well, right now I've gone for this:

http://tis100pad.com/134/1

It works for everything apart from the very first value, which everybody on reddit seems to think SHOULD be a 1 because the difference is between 0 (or no input) and 25.

I could cheat and just have the lower node write 0 and then enter a handling loop for everything else but that's a really lovely thing to do.

uXs
May 3, 2005

Mark it zero!

thehustler posted:

Well, right now I've gone for this:

http://tis100pad.com/134/1

It works for everything apart from the very first value, which everybody on reddit seems to think SHOULD be a 1 because the difference is between 0 (or no input) and 25.

I could cheat and just have the lower node write 0 and then enter a handling loop for everything else but that's a really lovely thing to do.

You know you can just do 'sub 10' instead of 'sub 1' 10 times...

Also 'JRO -5' is kind of a stupid command when you might as well jump to a label. JRO is only useful when you get the value from something else, most likely some other node that is steering the JRO'd node. Or maybe the first value from a stack or whatever.


I'm currently doing sequence sorter. I can sort the first sequence, now to just get everything to reset so I can sort the rest. I wonder if I can get away with using no JRO commands at all.

Dr. Stab
Sep 12, 2010
👨🏻‍⚕️🩺🔪🙀😱🙀
You can subtract more than 1 at a time. Also, yes, you need a special case for the first value, but it doesn't take any more than simply re-arranging your loop.

thehustler
Apr 17, 2004

I am very curious about this little crescendo

uXs posted:

You know you can just do 'sub 10' instead of 'sub 1' 10 times...

Also 'JRO -5' is kind of a stupid command when you might as well jump to a label. JRO is only useful when you get the value from something else, most likely some other node that is steering the JRO'd node. Or maybe the first value from a stack or whatever.


I'm currently doing sequence sorter. I can sort the first sequence, now to just get everything to reset so I can sort the rest. I wonder if I can get away with using no JRO commands at all.

I honestly did know you could do sub 10 and have absolutely no idea why I did that 10 times, but it's already fixed :) I think I was thinking in terms of loop iterations.

http://tis100pad.com/134/2

The JRO was because I didn't know if you could nest labels, but if you can I'll put a label jump in so it's more readable. Can you do it? Edit: yes

Anyway, that first result shouldn't be a loving 1, and I've just cheated the solution to pass a zero down and skip to the next pair.

I feel dirty :(

thehustler fucked around with this message at 21:06 on Jun 16, 2015

Adbot
ADBOT LOVES YOU

Dr. Stab
Sep 12, 2010
👨🏻‍⚕️🩺🔪🙀😱🙀
What do you mean by "nest labels?" Labels are just identifiers given to lines. A line can only have 1 identifier, but you weren't jumping to a line with one already, and if you were, you could just use the label it already has.

e: you don't really need to "cheat" your solution Just take the line labelled LESS and move it to the top.

  • Locked thread