Open Side Menu Go to the Top
Register
EXAPUNKS EXAPUNKS

08-11-2018 , 07:08 PM
READ ZINES. WRITE VIRUSES. HACK EVERYTHING



This game is rad and at least a few of us are playing so yeah let's talk about stuff
EXAPUNKS Quote
08-11-2018 , 09:29 PM
I'd love some tips for optimizing cycle counts. I find optimizing space/line count easier so I tend to focus on that, I get a bit lost trying to lower my cycles. Anyone want to spoiler a discussion on how they came to a good optimization with a particular mission? Also, lol at the mini-game near the middle. I think Zachtronics are really a bunch of tech smart old maids trying to infect the younger generation with their love of
Spoiler:
solitaire
EXAPUNKS Quote
08-11-2018 , 11:36 PM
Temporary "I'm the best in the world" bargs until the rest of the interwebz catches up



^ This is an outdated barg, me and Willd and the internets are now all tied at 87 here


TWN tutorial 4:



Zebros Copies:


(congrats Willd, you are also a champ)

Equity First Bank:

EXAPUNKS Quote
08-11-2018 , 11:51 PM
Quote:
Originally Posted by weevil
I'd love some tips for optimizing cycle counts. I find optimizing space/line count easier so I tend to focus on that, I get a bit lost trying to lower my cycles. Anyone want to spoiler a discussion on how they came to a good optimization with a particular mission?
Since these are general tips I won't spoil them, but a couple things I've figured out in general:

- Identify the portion of problems that occupies the most time and focus on optimizing that. Best example of this is Equity First Bank - you can shave a few cycles at the start by getting your EXAs where they need to be a little quicker, maybe, but when the problem takes a minimum of thousands of cycles to complete and most of that is spent in loops, you obviously can't make a serious dent in your cycles without focusing on making that loop wayyyy faster.

- Identify parts of calculations or general processes that have to be done together, versus parts that can be done separately. If work can be done separately, then maybe you can parallelize it! REPL and the M register are your friend.

- I think cycle count is based on the longest of your 100 test runs, so if a problem has tradeoffs (i.e. you can do part A faster or part B faster but you have to pick one), think about which optimization would help more in the longest-running case.

- Unrolling loops can be desirable for loops of a known length or an unknown but probably long length. Example 1:

Code:
@REP 6
COPY F M
@END
is much faster than

Code:
COPY 6 T
MARK LOOP
SUBI T 1 T
COPY F M
TJMP LOOP
^ also note the fact here that you can write directy to T before using TJMP/FJMP - the conditional JMP commands are just testing "does T equal or not equal 0", and all TEST does is set the T register according to the condition you're checking.

Example 2:

Code:
MARK FASTLOOP
TEST X > 10
FJMP NORMALLOOP
@REP 10
COPY F M
@END
JUMP FASTLOOP
MARK NORMALLOOP
*insert normal iter-by-1 loop here for the last <10 items*
^ for a loop that you expect to run dozens of times, this will be much faster than doing the whole thing 1 at a time.
EXAPUNKS Quote
08-14-2018 , 04:17 AM
Oh man, got to a level that uses the hard drive array stuff described in the first TWN issue. I write a couple EXAs that will communicate back and forth with each other, one part communicating data from a file that the other overwrites into another file, things are working beautifully and looking great, until...

THE TEST RUN REQUIRES THAT THEY READ FROM AND WRITE TO THE SAME FILE AT THE SAME TIME

ASDIFHASDOIFASDPOFI HSDOFIH HOW COULD U ZACH

HOW COULD U
EXAPUNKS Quote
08-14-2018 , 11:42 AM
And I thought the Europa Universalis IV thread was the most confusing thread in this forum...
EXAPUNKS Quote
08-15-2018 , 07:54 PM
An update yesterday fixed a bug where you could still, (apparently) incorrectly, communicate over the M register between nodes that were not linked. This would generally happen in the modem levels, where you open a link by dialing a number and then close the link.

Naturally this means my solution broke.
EXAPUNKS Quote
08-17-2018 , 05:46 PM


EXAPUNKS Quote
08-17-2018 , 06:28 PM
Oh you'd best believe I'm coming for you
EXAPUNKS Quote
08-18-2018 , 02:42 AM
Quote:
Originally Posted by goofyballer
Oh you'd best believe I'm coming for you


184 feels pretty insane for this level - my 225 solution is long and complicated and I'm sure there's some room to improve it, but 40 cycles??

edit: got to 204, through like 3-4 separate optimizations, but it feels like I've bled that stone pretty dry to get there

Last edited by goofyballer; 08-18-2018 at 03:45 AM.
EXAPUNKS Quote
08-25-2018 , 01:45 PM
Goofy you are destroying me on some of these early challenges, like the left arm one. I know you eventually learn some new instructions, did you go back and apply those to earlier challenges? I got the left arm down to 70, but your score is 39, which is almost one instruction per transferred value
EXAPUNKS Quote
08-25-2018 , 02:48 PM
Other than the @rep thing (which is more of a macro) in the second zine I don't think you learn new instructions. It's more about coming up with different approaches to the problems. For the 39 one, for example, you eventually have to get to the point where you're reading an input value every cycle and writing one out every cycle - most approaches won't allow you to do that, so what will?

Also, playing the game more helps. I didn't come up with that solution until getting the idea for similar approaches from optimizing a later level.
EXAPUNKS Quote
08-25-2018 , 03:04 PM
Trying to optimise that left arm is frustrating. It took so long to work out the way to get the repeating process down to 1 instruction per value and then I still got stuck at 41 and can't for the life of me work out how to get that final optimisation to get under 40.

I haven't played much at all in the last couple of weeks but I'll probably get back into it from next week, although with a focus on getting through the game instead of optimising for now. With other Zachtronics game I've spent so long focusing on optimising early levels that I get burnt out on the game and end up not getting anywhere near finishing it.
EXAPUNKS Quote
08-25-2018 , 03:44 PM
Quote:
Originally Posted by goofyballer
Other than the @rep thing (which is more of a macro) in the second zine I don't think you learn new instructions. It's more about coming up with different approaches to the problems. For the 39 one, for example, you eventually have to get to the point where you're reading an input value every cycle and writing one out every cycle - most approaches won't allow you to do that, so what will?

Also, playing the game more helps. I didn't come up with that solution until getting the idea for similar approaches from optimizing a later level.
I've tried a few different approaches and I think the right answer is a variation of 1 or both of them. In both approaches I run into a limitation that I can probably solve by getting the timing exactly right. But I haven't found a variation that works.
EXAPUNKS Quote
08-25-2018 , 04:59 PM
Quote:
Originally Posted by RustyBrooks
In both approaches I run into a limitation that I can probably solve by getting the timing exactly right. But I haven't found a variation that works.
Sounds like you're on the right track, the 39 solution does involve some precise timing.
EXAPUNKS Quote
08-27-2018 , 10:15 PM
I thought the challenge where you have to break the PIN on the Redshift device was fun. I'm having trouble getting to a 1% score but I decided, like with most of them, to power through the game and only try to get my solutions "decent" and then come back to some or all of them and make them better if I feel like it. Otherwise I may lose steam before I finish the game.

I thought the ones where you battle other hackers was fun but I'm not sure I really know how to make an effective one. Mine was custom made the beat the computer opponent more or less, it is not smart or interesting at all.
EXAPUNKS Quote
08-27-2018 , 10:55 PM
Quote:
Originally Posted by RustyBrooks
I thought the challenge where you have to break the PIN on the Redshift device was fun. I'm having trouble getting to a 1% score but I decided, like with most of them, to power through the game and only try to get my solutions "decent" and then come back to some or all of them and make them better if I feel like it. Otherwise I may lose steam before I finish the game.
That's definitely the way to go - alternate between tackling new problems and optimizing old ones, that keeps it fresh.

Quote:
Originally Posted by RustyBrooks
I thought the ones where you battle other hackers was fun but I'm not sure I really know how to make an effective one. Mine was custom made the beat the computer opponent more or less, it is not smart or interesting at all.
Did you know (and it definitely took me a bit to figure out how to do this) you can run your programs against your Steam friends and try to beat them? If you did, I think that's the aspect that's supposed to be interesting
EXAPUNKS Quote
08-27-2018 , 10:57 PM
Quote:
Originally Posted by goofyballer
Did you know (and it definitely took me a bit to figure out how to do this) you can run your programs against your Steam friends and try to beat them? If you did, I think that's the aspect that's supposed to be interesting
Yeah, and I completely kicked your ass.

(you're my only steam friend who has gotten that far)
EXAPUNKS Quote
08-27-2018 , 11:15 PM
Nooooooo! I think I built mine to beat weev's.
EXAPUNKS Quote
08-30-2018 , 01:01 PM
Thread has left me with the unlikely hope that bobman’s full name is Robert Bobman.
EXAPUNKS Quote
09-02-2018 , 09:43 PM
Quote:
Originally Posted by goofyballer

184 feels pretty insane for this level - my 225 solution is long and complicated and I'm sure there's some room to improve it, but 40 cycles??

edit: got to 204, through like 3-4 separate optimizations, but it feels like I've bled that stone pretty dry to get there
I'm at 241 and really at a loss. I think I'd have to use a totally different technique, I don't see a way to remove the line I'd need to remove to get to 200.
EXAPUNKS Quote

      
m