![]() The first EXA stays behind for later, while the second EXA travels from host to host looking for the correct tape drive. The name of the host to look for is the first record in the file in the host. Universities really want games off their mainframes, and Berkeley is no exception. EXAs that die drop whatever they’re holding, so there’s no need to explicitly drop the file in the home host. If any of the EXAs fail at linking or file grabbing, they terminate, so only the one EXA that can succeed at all those things lives until the end. It then attempts to kill a foreign EXA in its node, grab the file it was holding, then link backward to the starting host. At each node, each EXA makes two copies of itself, one that will jump to link 800 and one to jump to link 801. This puzzle uses replication to track down a file in the leaf node of this binary tree - the final puzzle of the main game is topologically similar to this. ![]() This is our first adventure into hacking a Russian network. Usually, a programmer would use the DIV and MOD operators to get this information, but might as well get familiar with the SWIZ command (which extracts and reformats individual digits of a value). The second EXA is iterating the characters in the X register, then used the SWIZ command to set the row and column to place the character. One EXA reads the characters, the second EXA writes them. SFCTA Highway Sign #4902 (Remote Access Interface) There is an achievement for making all the copy machines continually copy. The second EXA then zeroes out the balance, while the third EXA reads the global date value the first EXA set up. The second and third EXA communicate LOCALLY the information about the account’s current balance. One EXA reads the account number we are zeroing from the file in the main host, then jumps into the copy shop computer and searches for the outstanding balance for the user ID it just read. One EXA runs immediately to the host with the #DATE and writes it to the global memory. This puzzle requires some careful communication between EXAS, and is the first time it’s become important to know if we’re sharing information globally, anyone can talk to anyone, or locally, only EXAS in the same host can talk. ![]() The GIF shows a solution using two EXAs, but it can be done with one. ![]() Since the EXA language doesn’t have string literals, you have to read the word into the X register before moving into the assembly line. This puzzle asks you to look for, and remove, the word “PEANUTS” in the ingredient list. The repercussions of this hack will shake the world, as you go into the Peanut Blast ovens to remove the peanuts from their signature snacks. If only all the puzzles would be this easy… Last Stop Snaxnet (Factory 11) In this, XA stays home and bounds checks the values coming from the #NERV, and copies them to XB, which has traveled to the the destination and just copies what it receives to the destination nerve. The Mitsuzen puzzles all deal with you writing programs to rebuild the connections between your bio parts and your new mech parts. The framing plot for EXAPUNKS is that the main character, Moss, has been infected with a disease called “the Phage”, that slowly transforms nerves into digital circuits. There is an achievement for sending an EXA into host 805 and cycling the power. This solution used two EXAS, one to read the pizza order and the other to jump into the pizza shop’s mainframe and add what the first sent to the end of the list. For instance, in this puzzle, I was able to get the cycles down to 13 by unrolling the two loops, but it increased the size slightly. Most solutions won’t be perfect for every area. It shows in a general way how your solution works, and how many cycles it took in the worst case (so, how fast your solution is), the size, in instructions, and the number of times an EXA crossed from one host to another. Euclid’s Pizza (Order System)Īfter each puzzle, you can choose to make a GIF of your solution. You’ll see what I mean by that when I get to some of my solutions. My boss used to tell me not to let the perfect be the enemy of the good a good solution that produces the desired results is better than a perfect solution that is never finished. Once you have an implementation, then you can go back and refactor many times, your first pass is good enough. The first rule of programming is to get something working. But I’m done with the main plot got the achievement for proof, and I’m going to exorcise the game by writing down how I solved each puzzle.įirst, some of my solutions are optimal, some are terrible, most fall somewhere in between. Okay, I have been working on EXAPUNKS the last few weekends, and dreaming about it most nights.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |