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
bobbilljim
May 29, 2013

this christmas feels like the very first christmas to me
:shittydog::shittydog::shittydog:

echinopsis posted:

is there a repository of people’s solutions? i have virtually no idea of how to optimise, until i see someone else’s solutions and then what they did seems obvious

post about it and we can hint!

thanks to this game i spent like an hour on Wikipedia trying to understand the different definitions of the mod function
-1 mod 5 = 4 or -1 depending on your preference

Adbot
ADBOT LOVES YOU

Jabor
Jul 16, 2010

#1 Loser at SpaceChem
The former is how this game does it.

Especially useful if you want to, say, do N iterations and then halt.

bobbilljim
May 29, 2013

this christmas feels like the very first christmas to me
:shittydog::shittydog::shittydog:
Hint hint!!!!

echinopsis
Apr 13, 2004

by Fluffdaddy

Bhodi posted:

don't do a loop with subi then a test on x, just do a subi on T and loop a tjmp which will fall through when it's 0

:monocle:

CRIP EATIN BREAD
Jun 24, 2002

Hey stop worrying bout my acting bitch, and worry about your WACK ass music. In the mean time... Eat a hot bowl of Dicks! Ice T



Soiled Meat
yeah if your for loop is basically

code:
i = 4
while (i >= 0) {
  doAThing();
}
and you don't need to break out early, (aka perform TEST), then loading the value into T then just subi T 1, jnz is the way to go. saves you a ton of cycles because you're not constantly swapping registers

Zlodo
Nov 25, 2006

spankmeister
Jun 15, 2008






Yo this game owns

echinopsis
Apr 13, 2004

by Fluffdaddy

spankmeister posted:

Yo this game owns

of course it does

spankmeister
Jun 15, 2008






Stereotype posted:

I can’t believe how hard my computer has to work to run it though. It’s so simple, why can’t he write games that aren’t insanely cpu intensive.

Zachtronics games run like poo poo on Macs. Maybe something to do with mono idk

spankmeister
Jun 15, 2008






Does anybody use the MODI instruction extensively? I have a feeling there's a few really cool tricks with it but I rarely use it.

echinopsis
Apr 13, 2004

by Fluffdaddy
I feel its one of those things where there are good tricks that are based around it, but are probably hard to discover for yourself, but when someone uses it in a cool way you're like :monocle:

Pardot
Jul 25, 2001




spankmeister posted:

Does anybody use the MODI instruction extensively? I have a feeling there's a few really cool tricks with it but I rarely use it.

I remember using it for the street sign one

echinopsis
Apr 13, 2004

by Fluffdaddy
can you post your solution?

Adult Sword Owner
Jun 19, 2011

u deserve diploma for sublime comedy expertise
never beat a zach game but also didnt know, so thanks op going 2 buy

Pardot
Jul 25, 2001




echinopsis posted:

can you post your solution?



GRAB 300
LINK 800
MARK L
DIVI X 9 #DATA
MODI X 9 #DATA
COPY F #DATA
ADDI 1 X X
TEST EOF
FJMP L
WIPE


Pardot
Jul 25, 2001




Adult Sword Owner posted:

never beat a zach game but also didnt know, so thanks op going 2 buy

This has so far been the only zach game I've finished, if that's any inspiration

echinopsis
Apr 13, 2004

by Fluffdaddy

Pardot posted:



GRAB 300
LINK 800
MARK L
DIVI X 9 #DATA
MODI X 9 #DATA
COPY F #DATA
ADDI 1 X X
TEST EOF
FJMP L
WIPE



thankyou i will grok this and compare to mine when i get home

Stereotype
Apr 24, 2010

College Slice
beat some more levels. Also I'm currently beating everyone in the first multiplayer level.

cadenza
Dec 25, 2006

integrity
just discovered this this afternoon. haven't read or written anything resembling assembly for years and years and i think this might be the best game i've ever played. i printed out the first magazine and everything!

i'm at the point where i think i've figured out that i can store multiple integers in a register using SWIZ but the sudden realisation of all the things that opens up is a little bit overwhelming.

if there is a yospos steam group or something i'd love to join it so i can see how terrible my solutions are compared to everyone else

Silver Alicorn
Mar 30, 2008

𝓪 𝓻𝓮𝓭 𝓹𝓪𝓷𝓭𝓪 𝓲𝓼 𝓪 𝓬𝓾𝓻𝓲𝓸𝓾𝓼 𝓼𝓸𝓻𝓽 𝓸𝓯 𝓬𝓻𝓮𝓪𝓽𝓾𝓻𝓮
I started playing poly bridge

cadenza
Dec 25, 2006

integrity
drat the one where you have to replace words in a message sent to ghast to change its meaning is the first one to really stump me. any hints?

edit: i can't think of any way to iterate over the file to find matches without using both registers (x for token to match, t for test operation). i wonder if there is some way i can have one agent do the finding (and sharing the index of the token to replace) and then another that actually does the replacing? i'm not sure, that sounds a bit overcomplicated

edit2: wait i think i've figured it out... i can iterate until i find a match, writing some value to m each time. that way another agent can keep count (and know the index to replace at)...

edit3: yes that approach works but my solution is 1 line too long...

cadenza fucked around with this message at 06:38 on Aug 27, 2018

echinopsis
Apr 13, 2004

by Fluffdaddy
lol i copied out my attempt here. then went to run it to show my historically poor histogram data

then realised

i never actually got it working

idiot

gonadic io
Feb 16, 2011

>>=

cadenza posted:

drat the one where you have to replace words in a message sent to ghast to change its meaning is the first one to really stump me. any hints?

edit: i can't think of any way to iterate over the file to find matches without using both registers (x for token to match, t for test operation). i wonder if there is some way i can have one agent do the finding (and sharing the index of the token to replace) and then another that actually does the replacing? i'm not sure, that sounds a bit overcomplicated

edit2: wait i think i've figured it out... i can iterate until i find a match, writing some value to m each time. that way another agent can keep count (and know the index to replace at)...

edit3: yes that approach works but my solution is 1 line too long...

i did it by two separate loops, one to copy the data to a new agent's file, then one to actually go over the data to replace the value

Stereotype
Apr 24, 2010

College Slice
My steam name is Haleakala

I guess I don't have most of you as friends

cadenza
Dec 25, 2006

integrity
my steam username is hatsuyume. avatar should match here

edit: shall i make a thread on https://steamcommunity.com/groups/YOSPOS/discussions so we can find each other?

cadenza fucked around with this message at 18:25 on Aug 27, 2018

spankmeister
Jun 15, 2008






cadenza posted:

my steam username is hatsuyume. avatar should match here

edit: shall i make a thread on https://steamcommunity.com/groups/YOSPOS/discussions so we can find each other?

sure

cadenza
Dec 25, 2006

integrity
ugh the one to gain access to the redshift sdk is really making me think

edit: oh wait its easy if you just use SWIZ

cadenza fucked around with this message at 20:44 on Aug 27, 2018

Stereotype
Apr 24, 2010

College Slice

cadenza posted:

ugh the one to gain access to the redshift sdk is really making me think

edit: oh wait its easy if you just use SWIZ

yeah i feel like that level is designed to show you how powerful that command is, because it is super powerful

cadenza
Dec 25, 2006

integrity
the palo alto digital library services mission is really stumping me. i've successfully finished the one after it (the modem one) but am not sure how to handle this one.

i made a partially working implementation that sent a fork to each host according to the input file, but my procedure to actually copy the books needs a hardcoded file ID for my temp file. i was really excited when i "solved" the first relevant host until i realised that all the others failed due to this. though thinking on it now i also had a pretty terrible algo for copying since it destroyed the contents of the original file...

any of you professionals got any hints for me?

Angela Merkle Tree
Jan 4, 2012

the definition of open: "mkdir android ; cd android ; repo init -u git://android.git.kernel.org/platform/manifest.git ; repo sync ; make"
College Slice
if you're destroying the original file you'll be failing the "leave no traces" objective too

small hint: what if you had a second exa in your home dir for receiving data

bigger hint: have your first exa hold the book list file and fork workers for each book, use the second exa to receive data from them sent via the M register

Jabor
Jul 16, 2010

#1 Loser at SpaceChem
An immediate hint, ignoring any potential X-Y shenanigans you might have going on: you can use the FILE command to look up the filename you've just created and the LOCAL message bus to send it to whatever's going to need to pick it up

Nalin
Sep 29, 2007

Hair Elf

cadenza posted:

drat the one where you have to replace words in a message sent to ghast to change its meaning is the first one to really stump me. any hints?

Here is my solution. It teaches you something important about keywords: they always test as true.

There is one other trick to keywords.


If you test them against a number, the result is always false. So, if you have a list of always positive numbers with keywords thrown in...

X contains KEYWORD
F contains positive numbers or KEYWORD

TEST F > -1

That will always return true unless F points to a keyword.


And for the solution to that puzzle:


GRAB 300
LINK 800

NOTE SETUP
REPL OUTBOX
JUMP CONT

NOTE MOVE FILE TO OUTBOX
MARK OUTBOX
GRAB 200
LINK 800
HALT

NOTE SPAWN WORKER
MARK CONT
LINK 799
REPL WORKER

NOTE READ REPLACE TERMS
MARK SENDER
COPY F M
TEST EOF
FJMP SENDER
COPY 0 M
WIPE
HALT

NOTE GRAB TARGET
MARK WORKER
GRAB 212

NOTE READ KEYWORDS
NOTE A KEYWORD IS TRUE
NOTE SO THE ENDING 0
NOTE WILL TERMINATE
MARK LOOP
COPY M T
FJMP DIE
COPY T X
SEEK -9999

NOTE SEARCH FOR KEYWORD
MARK SEARCH
TEST F = X
FJMP SEARCH
SEEK -1
COPY M F
JUMP LOOP

MARK DIE

Corla Plankun
May 8, 2007

improve the lives of everyone
i just sold all my dota hats and somehow people paid 62 american dollars for them so im gonna buy the heck out of this game tonight

cadenza
Dec 25, 2006

integrity
so i was having trouble largely because i was trying to be smart and have all the forked exas do their copying all at the same time. i just started over and did a dumb version that just does each thing in sequence and it only took about 5 minutes lol

Stereotype
Apr 24, 2010

College Slice
I was proud of my library one because a search/read exa communicated the whole book back over the M register to a receive/write exa that were both created by a master-controller exa as mealy machines

cadenza
Dec 25, 2006

integrity
yeah that's a cool pattern, i had something similar going on. why won't more people post in https://steamcommunity.com/groups/YOSPOS/discussions/0/1733210552690420831/

cmon people i want leaderboards

Corla Plankun
May 8, 2007

improve the lives of everyone
the hardest part about this game so far is accepting that i dont have access to a shift operator of any kind

Stereotype
Apr 24, 2010

College Slice

Corla Plankun posted:

the hardest part about this game so far is accepting that i dont have access to a shift operator of any kind

you sorta do with `swiz`

Zlodo
Nov 25, 2006
also MULI/DIVI (and MODI can be used as a poor man's and to mask the least significant bits)

Adbot
ADBOT LOVES YOU

Jabor
Jul 16, 2010

#1 Loser at SpaceChem
Also you have division (unlike shenzhen), so you can just divide by powers of whatever if you really want to.

  • Locked thread