EXAPUNKS from Zachtronics

Not that I know of. There's a basic philosophy in the game of "try it and if the EXA dies, the answer was no".
Link existence, file existence all work that way. The TEST MRD instruction can be used as a dirty way of finding if another EXA is ready to go yet. It's currently my best guess for the large scale synchronisation I have to do on my current puzzle (pagers).

The DNA puzzle was frustrating because my initial solution (pairs of readers and writers) was broken by having to read and write from the same file for one block. I had to rewrite the whole thing to cache the whole read sequence instead.

MooQuack might know different.

Katy wrote:

Is there any way to test if a REPL instruction will be successful? It waits to execute if there's no memory location for a new EXA. I want to REPL if there's room, or do something else if there isn't.

It would be easy if REPL "just failed" instead of waiting around to execute successfully.

(Or maybe I should just exploit the fact that I know that all the test cases have the same network architecture. Seems unfair somehow, though.)

REPL will block. There isn't a way around that, or at least not directly. Likewise, so will LINK. So, you're going to have to find another approach. Space constraints can be the trickiest to work around.

As for "exploiting" things: Everything is fair game. If it saves you a cycle, go for it. I once copied a value from each of the 100 test cases into a spreadsheet in order to optimize a solution. That case was a little unusual, though. Your final score is based on the maximum number of cycles across all the test cases, and so there usually isn't a lot of benefit from keying the solution to specific test case values.

But there can be a great deal of benefit from looking through the test cases to find (say) the maximum or minimum lengths for different things, or to get a sense of how the network might differ between test runs, or other such things that limit the scope of the problem.

If the solution passes, it's fair.

There's nothing like seeing somebody (MightyMooquack) with a solution that takes <10% of the cycles yours does to give you a sinking feeling that you're solving the problem entirely incorrectly.

Too bad I'm not getting points for cleverness.

Katy wrote:

There's nothing like seeing somebody (MightyMooquack) with a solution that takes <10% of the cycles yours does to give you a sinking feeling that you're solving the problem entirely incorrectly.

Too bad I'm not getting points for cleverness.

Mooquack is proof that we're all living in a simulation. He's just the sim owners trolling us.

So I finally beat the first pager test run, only to see the second test run has a different length message, which throws off all the delays I'd calculated. I did actually emit an audible groan. I'm just glad the TEST MRD bug was patched out before I attempted it (before this some people did the sync more easily by using a global M copy over disconnected links).

Now I have to do sorting, which was my least favourite thing in TIS-100. I'll have to use files as arrays I suppose.

I also went back over the solutions. MooQuack certainly has things up his sleeve I don't still. The bodyhacking puzzle truncating the nerve value is a case in point. There are size 9 and 10 solutions to that. I have no idea how that is being handled. There are irreducible components to that puzzle:

1) a LINK 800 command to get to the source nerve
2) LINK 1 commands to get to the destination nerve. It's 4 steps away. A T loop would be a copy, a MARK, a TJMP and a Subtraction, which is no size benefit over 4 raw LINK commands
3) copy and 2-ended truncate to get the value. The naive solution would be two copies, two additions and two subtractions. You can combine the copies with two of the arithmetic operations, which makes it 4
4) 2 extra JUMP commands for read / write loops

So I guess that's 11 commands. A REPL saves you a duplicated LINK but doesn't change the size. I'm clearly missing things. Are people using canaries to do a copy and then a LINK to save space somehow?

Nine instructions?! ... Just a moment.

Okay, got it.

One of the biggest hints about what a solution must look like is the fact that it exists. It can be difficult to distinguish between trying to find a better scoring solution and searching in vain. Knowing that such a solution exists means that you know you aren't wasting your time, which helps focus one's efforts.

I do not believe it is giving anything away to say that REPL is involved. As the great philosopher said: When you come to a fork in the road, take it.

Okay, just started this. I've done the first two tutorials. Put my code in for the third one, but the test controls never light up! Any idea what I've missed?

This suggests you have an error somewhere. Does it put a red underline under any of your code?

No, I don't think so...

Edit - Yes, apparently I was screwing up by naming files.

I picked this up last night, and it's been fun! I've sent a few friend requests so I can see how bad I'm doing on the leaderboards.

I've been playing a fair amount. Feel free to friend me up!

I've been noodling around with it some, so I sent requests to both of you.

Well I finished the game, except for the last level. I was throughly stuck for many days. Eventually, with some online clues, I put together a partial solution. I feel this was the first time that programming experience would have been ready super helpful. There are just some algorithms that I've dabbled in 20 years ago that's gone from my memory. I wanted to see the end of the story, so I just found a solution online and ran it. So, please ignore my results on that puzzle!

Overall, I was really pleased by the game. It's the furthest I've ever gotten into a Zachtronics game. For some reason, it clicked with me.

Coincidentally, I just started playing Exapunks last night. Neat aesthetic so far. I "ordered" a pizza. I completed the tutorial levels in what I presume is the expected way, and saw some of you people have absolutely insane scores. I assume that, as is the case with other Zachtronics games, I'll learn some more advanced techniques later that could be applied to earlier levels.

merphle wrote:

Coincidentally, I just started playing Exapunks last night. Neat aesthetic so far. I "ordered" a pizza. I completed the tutorial levels in what I presume is the expected way, and saw some of you people have absolutely insane scores. I assume that, as is the case with other Zachtronics games, I'll learn some more advanced techniques later that could be applied to earlier levels.

Most of the time, if I see that someone has a better optimized solution than I do, I'll relentlessly try to find it before I move on to the next puzzle. That's just the programmer in me.

PWAlessi wrote:
merphle wrote:

Coincidentally, I just started playing Exapunks last night. Neat aesthetic so far. I "ordered" a pizza. I completed the tutorial levels in what I presume is the expected way, and saw some of you people have absolutely insane scores. I assume that, as is the case with other Zachtronics games, I'll learn some more advanced techniques later that could be applied to earlier levels.

Most of the time, if I see that someone has a better optimized solution than I do, I'll relentlessly try to find it before I move on to the next puzzle. That's just the programmer in me.

I'm also a programmer, but the Agile Methodology dictates that I should maximize the amount of work not done, so... if the solution works, I'm happy moving on to the next one. Until I find some hot new library technique that I want to apply to everything, and go back to older apps puzzles.