from: Interactive Fiction Archive ftp://ftp.gmd.de/if-archive/magnetic-scrolls/hints/solutions/ ============================================= A s t e p w i s e s o l u t i o n t o F I S H ! b y S t e f a n J o k i s c h ============================================= Both editions of Fish! -- the original and the collection one -- came with hints. Nevertheless, there are still countless possibilities to get stuck, therefore a solution might prove to be useful. Please note that you should enter only one command per line (a period marks the end of a command). Although the Magnetic Scrolls parser can handle several commands, it sometimes makes mistakes. Yet this parser is the most ambitious one I have ever seen. The first steps of this solution also intend to demonstrate some of its features. At the moment (1994) you can reach me via internet: jokisch@snorre.informatik.uni-dortmund.de. ----- goldfish bowl ----- TURN OVER. ENTER THE CASTLE. ----- small warp ----- SWIM THROUGH THE SMALL WARP. TELL ROD TO MAKE SOME COFFEE QUICKLY. TAKE THE FERRIC CASSETTE WHICH IS INSIDE THE WASTE BIN. GO WEST. GO WEST. OPEN THE DOORS. PUSH THE SWITCH. S. TAKE CASSETTES FROM BIN. N. N. CLOSE DOOR. PUSH BUTTON. SET FADER TO 5. OPEN CUPBOARD. PLAY CLEANER IN PLAYER. PLAY CASSETTES EXCEPT CLEANER IN PLAYER. [do not forget that three number combination you have heard] OPEN DOOR. GO TO LOUNGE. OPEN DOOR. N. SET LOCK TO [combination]. OPEN CABINET. GET SPINDLE. ----- jagged warp ----- GO JAGGED WARP. WEAR JEANS. S. SEARCH RUBBISH. GET TORCH. TURN IT ON. OUT. E. E. TURN IT OFF. E. S. TURN IT ON. GET PEW. TURN TORCH OFF. N. N. TURN IT ON. DROP PEW. D. S. [answer 'yes'] SEARCH DEBRIS. PUSH LID. D. GET ROPE. FIND PEW. STAND ON IT. U. TIE ROPE TO GARGOYLE. D. PULL ROPE. UNTIE ROPE. GET GARGOYLE. D. S. PUT LID IN DOORWAY. D. PUT GARGOYLE IN HOLE. GET CHALICE. GET GROMMET. ----- smooth warp ----- GO SMOOTH WARP. SE. SE. E. OPEN CAGE AND CUPBOARD. GET CAGE AND ALL FROM CUPBOARD. OUT. DROP CAGE. NW. NW. [wait until Micky has left] GET DISC. S. SE. E. GET MOULD. E. PUT DISC IN CRUCIBLE. WEAR GLOVES. HOLD CRUCIBLE WITH TONGS OVER FIRE. POUR GOLD INTO MOULD. W. W. NW. NE. E. [wait until the gold has cooled] HIT MOULD WITH HAMMER. GET RING. ----- large warp: Paddlington ----- GO WARP. LOOK UNDER FISHTON. GET PASS AND CARDS. PUSH SWITCH. PUT HAND ON PRINT. S. D. S. E. D. WAIT FOR TRAIN. IN. Z. Z. Z. GET OFF. ----- large warp: Pickerel ----- U. SE. N. BUY TIE AND GLASSES WITH FISA. S. S. BUY SNIFTER WITH FISA AND GIVE IT TO DRUNK. AGAIN. AGAIN. ASK DRUNK FOR ID CARD. BUY CYLINDER WITH FISA. E. E. N. BUY FISHTON WITH FISA. S. E. BUY HYPERDRIVER, SCREWDRIVER, BAG WITH FISA. W. S. BUY PLUGS WITH FISA. WEAR GLASSES AND PLUGS. N. W. NW. NW. D. WAIT FOR TRAIN. IN. Z. Z. Z. GET OFF. ----- large warp: Opah University ----- U. E. S. BUY SACHET WITH FISA. N. E. S. E. S. LOOK UP WHEEL. TEAR PAGE. E. PUT TATTY CARD IN SLOT. E. SIT DOWN. LOGIN. [login as 'roach', enter your password 'me', enter the command 'games', try to start the game 'shutdown', type 'quit', type 'logout'; the owner of the game shutdown is the saboteur; as soon as you happen to meet him, you should invite him to the disco] SE. PUT PAGE IN PROTOCOPIER. TURN PROTOCOPIER OFF. GET WHEEL. NW. DROP WHEEL AND FISA. PUT TATTY CARD IN SLOT. W. W. W. W. W. D. WAIT FOR TRAIN. IN. Z. Z. Z. Z. Z. GET OFF. ----- large warp: Museum ----- U. N. N. OPEN SACHET. DROP IT. N. GET CRYSTAL. S. S. S. D. WAIT FOR TRAIN. IN. Z. GET OFF. ----- large warp: Paddlington revisited ----- U. W. N. U. GET CASE. N. GO WARP. [you are in the dimensions now; see the algorithms below; continue here after solving that puzzle] S. D. S. E. D. WAIT FOR TRAIN. IN. [if you still haven't invited the saboteur to the disco then get off at Pickerel, go to the pub and wait for him; otherwise get off at Battersea] ----- large warp: Battersea ----- U. N. DROP CASE AND BAG. PUSH SWITCH. W. W. TURN SCREW WITH SCREWDRIVER. E. E. DROP SCREW AND SCREWDRIVER. GET CASE AND BAG. S. D. WAIT FOR TRAIN. IN. Z. GET OFF. ----- large warp: Opah University revisited ----- U. E. GIVE TIE TO [saboteur]. N. E. PUT NEW CARD IN SLOT. N. PUT CRYSTAL IN TUNA. CLOSE TUNA. TURN IT ON. OPEN IT. GET CRYSTAL. U. PUT CYLINDER IN BAG. OPEN IT. DROP BAG. GET BRIDGE. JUMP OVER RAILING. E. E. E. PUT TATTY CARD IN SLOT. E. DROP CARDS, GLASSES, PLUGS. ATTACH CRYSTAL TO BRIDGE. ATTACH WHEEL TO FILTER. ATTACH BRIDGE TO FILTER. ATTACH FILTER TO CASE. NE. TURN SCREW WITH HYPERDRIVER. [keep in mind the password the saboteur tells you] SW. SIT DOWN. LOGIN. [login as the saboteur, enter his password, enter the command 'games', choose the game 'shutdown' and win the game; see the instructions below; finally enter 'quit' and 'logout'] NE. TURN SCREW WITH HYPERDRIVER. GET ACCELERATOR. PUT REGULATOR IN DEVICE. FIX IT WITH SCREW. [Congratulations! You should have a full score of 501.] ===================================== T h e D i m e n s i o n M a z e ===================================== WHAT'S GOING ON IN THE DIMENSION MAZE Whenever you go to a specific direction, the pattern of exits changes. There are up to nine exits; four edge exits (N, W, S, E), four corner exits (NW, SW, SE, NE), and the UP exit. Your goal is a room with only a single exit leading up. Whenever you go up, each exit is "changed". For example, if you are in a room with four exits N, NW, S, UP, then you will find the other five exits W, SW, SE, E, NE after going up. To "change" an exit means: to make it disappear, if it has been there, and to open it up, if it has been missing. Whenever you go north, every exit except the SW, S, and SE exits are changed. Similarly, going south affects every exit except the NW, N, and NE ones. Going west leaves only the NE, E, and SE exits unchanged. And finally, going east preserves only the status of the NW, W, and SW exits. Whenever you go through a corner exit, that specific corner exit, its neighbouring edge exits and the up exit are changed. Thus going northwest only affects the N, NW, NE, and UP exits. If you are still confused, then take a few steps in the maze and compare the effects to these explanations. For all those computer freaks among you: Think of the rooms as binary numbers consisting of nine bits, each bit representing a single exit. Going through an exit performs an EXOR operation. 9 For all those mathematicians among you: You have to solve an equation in F. 2 For all the rest: Don't despair. Think about combining the effects of different exits. Look out for ways to eliminate a single exit without opening up new exits. It is a little bit like Rubik's cube. THE SCROLLS' ALGORITHM FOR THE DIMENSION MAZE Paul D. Doherty sent the following one from the original edition of Fish! to me (thanks) and I've added some comments to make clear why it works. 1. First ensure there are an odd number of exits. 2. If there aren't any then swim up. [If you have x exits before, then there will be (9-x) exits afterwards. Even turns to odd and odd turns to even.] 3. If you can't swim up then take any exit and then swim up. [After 3 you should have an odd number of exits: Going through a corner (edge) exit changes 4 (6) exits, which means that this won't change that odd/even matter. From now on we won't go up anymore, so we will always have an odd number of exits. If we reach a room with no corner or edge exits, there will be an exit upward (0+0+1 is odd). If we did the trick with an even number of exits... well, guess where we would end up.] 4. Then swim through all corners in turn that are open. [If you go through a corner exit, that specific corner exit will disappear, but no other corner exit will be affected.] 5. For each open edge swim through it and then swim through the corners that open up. [Let's assume that there's an exit to the north. When you go through it, it will disappear, but those neighbouring corner exits (nw, ne) will open. So you must go nw and ne. The result of the sequence N-NW-NE is that only the northern exit has changed (= closed, since it has been open). Any other edge/corner exit has not been affected at all or has been changed twice (and changing an exit twice means to change it once and then return it to its initial state).] 6. When you have cleared all the edges you can swim up - it's the way out. MY ALGORITHM FOR THE DIMENSION MAZE I developed the following algorithm, which will find the *shortest* way to the cylinder. It needs 9 turns in worst case and less than 6 in average case. * STEP 1: Let "dir" be an exit (N, W, S, E, NW, SW, SE, NE, or UP). { 1 if the exit "dir" exists in your starting room We define A(dir) := { { 0 if it does not Calculate the following values: C(NW) := A(E) + A(SE) + A(S) C(SW) := A(E) + A(NE) + A(N) C(SE) := A(W) + A(NW) + A(N) C(NE) := A(W) + A(SW) + A(S) C(N) := A(W) + A(SW) + A(S) + A(SE) + A(E) C(S) := A(W) + A(NW) + A(N) + A(NE) + A(E) C(W) := A(N) + A(NE) + A(E) + A(SE) + A(S) C(E) := A(N) + A(NW) + A(W) + A(SW) + A(S) C(UP) := A(N) + A(NW) + A(W) + A(SW) + A(S) + A(SE) + A(E) + A(NE) If there is an upward exit in your room then make a list of all those exits "dir" for which C(dir) is odd. Otherwise, write down all the other exits (with even C(dir)). * STEP 2: Repeat this step until your list is empty: Take a look at your current location and compare it to your list. - If your list and the room have no exit in common, then go through any exit and add that exit to your list. - If your list and the room have exactly one exit in common, then go through it and remove it from your list. - Otherwise, if several exits of the room are on your list, then you may choose any of these exits, as long as you do not violate rules A & B (see below). Go through your exit of choice and remove it from your list. Rule A: If the UP exit is on your list, then go up as soon as possible. Rule B: If an edge exit (N, W, S, or E) is on your list, whose opposite edge exit is *not* on your list, then you should prefer other exits on your list (if possible). * STEP 3: Take the cylinder and go up. Congratulations. You've solved the problem in a minimum number of turns. =================================== T h e G a m e S h u t d o w n =================================== WHAT'S GOING ON IN SHUTDOWN There are five cells, each cell containing a letter between A and Z. You may choose any cell at random and "shift" its contents by any number from 0 to 25. If you shift a cell further than Z, it starts again with A, B, C and so on. Some examples: A shifted by 2 --> C, F shifted by 8 --> N, X shifted by 5 --> C. Your goal is to set the five cells to the word 'WATER'. Sadly, when you shift a cell, its neighbouring cells are affected, too. The only exception is the first cell. When you shift it, nothing happens to the other cells. Therefore it is wise to adjust cells 2-5 to 'ATER' and then shift the first cell. When you shift the second cell, you also shift the first and third cell by 1. When you shift the third cell, you also shift the second and fourth cell by 2. When you shift the fourth cell, you also shift the third and fifth cell by 3. And finally, when you shift the fifth cell, you also shift the fourth and first cell by 4. SOLUTION FOR THE GAME SHUTDOWN 1. Set the fifth cell to 'O'. 2. Set the fourth cell to 'C'. This also shifts the fifth cell to 'R'. 3. Set the third cell to 'S'. This also shifts the fourth cell to 'E'. 4. Set the second cell to 'A'. This also shifts the third cell to 'T'. 5. Set the first cell to 'W'. A few examples on how to "set" a specific cell: We suppose that the cell currently holds the letter 'E'. - To set it to 'F', we must shift it by 1. - To set it to 'M', we must shift it by 8. - To set it to 'C', we must shift it by 26-2 = 24 ("two letters backward"). - To set it to 'E', we must shift it by 0. Please do not simply skip a cell, if you must shift it by 0. You must *really* shift it by 0, because the neighbouring cells are still affected. If you make a mistake, you have to start again at cell 5.