TO GAME OP "ADVSAVE END TO DROPALL DROPALLITEMS :ITEMS END TO GETALL GETALLITEMS :ITEMS END TO S MOVEDIR 3 END TO N MOVEDIR 1 END TO ITEMLOC2 :ITEM :I IF :I = [] OP 0 IF LAST FIRST :I = :ITEM OP FIRST FIRST :I OP ITEMLOC2 :ITEM BF :I END TO PUTITEM2 :ITEM :LOC :LIST IF :LIST = [] OP [] IF LAST FIRST :LIST = :ITEM OP FPUT FPUT :LOC BF FIRST :LIST BF :LIST OP FPUT FIRST :LIST PUTITEM2 :ITEM :LOC BF :LIST END TO DROPALLITEMS :I IF :I = [] CMD TEST ITEMLOC LAST FIRST :I = ( - 1 ) IFT PUTITEM LAST FIRST :I :RNUM IFT PR SE LAST FIRST :I "DROPPED. DROPALLITEMS BF :I END TO SETIT :THING MAKE "IT :THING OP :THING END TO PITEMS2 :LOC :I IF :I = [] STOP IF FIRST FIRST :I = :LOC PRINT LAST FIRST :I PITEMS2 :LOC BF :I END TO E MOVEDIR 2 END TO INITITEMS :I :F IF :I = [] STOP TEST :F = 1 IFT DEFINE LAST FIRST :I LPUT LPUT WORD "" LAST FIRST :I [OP SETIT] [[]] IFF DEFINE LAST FIRST :I [] INITITEMS BF :I :F END TO INIT MAKE "ITEMS [[1 0 SWORD] [1 0 HATCHET] [1 0 SHIELD] [2 100 GOLD] [2 100 DIAMOND] [2 50 AMULET] [3 0 SCREWDRIVER] [4 0 MACHINE] [0 100 WAND] [5 200 CROWN]] MAKE "RMOVES [[0 2 3 0] [0 0 4 1] [1 4 0 0] [2 0 0 3] [0 0 0 0]] MAKE "RNAMES [[YOU ARE IN THE WEAPON SHOP.] [THIS IS THE VAULT.] [THIS ROOM IS THE TOOLSHED.] [THIS IS THE ALTAR ROOM.] [YOU ARE IN A SECRET INCANTING ROOM.]] MAKE "RNUM 1 INITITEMS :ITEMS 1 END TO TAKE :THING GET :THING END TO PUTITEM :ITEM :LOC MAKE "ITEMS PUTITEM2 :ITEM :LOC :ITEMS END TO SEENO :I PR SE [I SEE NO] SE :I "HERE! CMD END TO GETALLITEMS :I IF :I = [] CMD TEST :RNUM = ITEMLOC LAST FIRST :I IFT PUTITEM LAST FIRST :I ( - 1 ) IFT PR SE LAST FIRST :I "TAKEN. GETALLITEMS BF :I END TO EVERYTHING OP "EVERYTHING END TO IHAVE? :ITEM OP - 1 = ITEMLOC :ITEM END TO WAVE :ITEM IF NOT IHAVE? :ITEM PR SE [YOU ARE HOLDING NO] PERIOD :ITEM CMD IF NOT :ITEM = "WAND NOTHING IF ALLOF NOT :RNUM = 4 NOT :RNUM = 5 PR [NOTHING HAPPENS.] CMD PR [POOF! THE SCENE CHANGES!] IF :RNUM = 4 MAKE "RNUM 5 ELSE MAKE "RNUM 4 LOOK END TO FIX :ITEM IF IHAVE? :ITEM PR [YOU HAVE TO DROP IT TO FIX IT!] CMD IF NOT HERE? :ITEM SEENO :ITEM IF NOT :ITEM = "MACHINE PR [YOU CAN'T FIX THAT!] CMD IF NOT ITEMLOC "WAND = 0 PR [THE MACHINE IS NOT BROKEN!] CMD IF NOT IHAVE? "SCREWDRIVER PR [YOU DON'T HAVE THE PRPPER TOOLS TO] PR [FIX IT] CMD PR [YOU FIX THE MACHINE WITH YOUR TRUSTY] PR [SCREWDRIVER. UPON BEING FIXED, THE] PR [MACHINE STARTS UP AND PRODUCES A WAND!] PUTITEM "WAND 4 CMD END TO ITEMLOC :ITEM OP ITEMLOC2 :ITEM :ITEMS END TO PERIOD :WORD OP WORD :WORD ". END TO IT OP :IT END TO HERE? :ITEM LOCAL "LOC MAKE "LOC ITEMLOC :ITEM OP ANYOF - 1 = :LOC :RNUM = :LOC END TO PITEMS :LOC PITEMS2 :LOC :ITEMS END TO MOVEDIR :DIR MAKE "TRYMOVE ITEM :DIR ITEM :RNUM :RMOVES TEST :TRYMOVE = 0 IFT PR [YOU CAN'T GO THAT WAY.] IFT CMD PR "OK. MAKE "RNUM :TRYMOVE LOOK END TO EXAMINE :ITEM IF NOT HERE? :ITEM ( PR [I SEE NO] :ITEM [HERE!] ) CMD IF :ITEM = "WAND PR [IT BEARS A FADED INSCRIPTION:] PR ["WAVE ME AND YOU'LL BE GLAD."] CMD IF NOT :ITEM = "MACHINE PR SE [I SEE NOTHING SPECIAL ABOUT THE] PERIOD :ITEM CMD IF NOT 0 = ITEMLOC "WAND PR [IT SEEMS TO BEAR THE MARKS OF A HASTY] PR [REPAIR JOB.] CMD PR [IT IS BROKEN! YOU COULD FIX IT WITH] PR [THE RIGHT TOOL.] CMD END TO INVENT PITEMS - 1 CMD END TO DROP :ITEM TEST :ITEM = "EVERYTHING IFT DROPALLITEMS :ITEMS IF NOT IHAVE? :ITEM PR SE [YOU'RE NOT CARYING THE] WORD :ITEM "! CMD PUTITEM :ITEM :RNUM PR SE :ITEM "DROPPED. CMD END TO GET :ITEM TEST :ITEM = "EVERYTHING IFT GETALLITEMS :ITEMS IF IHAVE? :ITEM ( PR [YOU ALREADY HAVE] PERIOD :ITEM ) CMD IF NOT HERE? :ITEM SEENO :ITEM PUTITEM :ITEM ( - 1 ) PR SE :ITEM "TAKEN. CMD END TO LOOK PR ITEM :RNUM :RNAMES PITEMS :RNUM CMD END TO W MOVEDIR 4 END TO HELP PR [TO MOVE, TYPE] PR [N, E, S, W] PR [FOR NORTH, SOUTH, EAST, WEST] PR [] PR [TYPE LOOK TO SEE WHAT ROOM YOU] PR [ARE IN. YOU CAN GET AND DROP ITEMS.] PR [INVENT SHOWS YOUR INVENTORY.] PR [THE WORD "IT" MEANS THE LAST THING YOU] PR [REFERRED TO.] PR [] PR [THERE ARE SOME SPECIAL THINGS YOU CAN] PR [DO, LIKE SAYING EXAMINE SOMETHING.] PR [] PR [TYPE SCORE TO SEE YOUR SCORE, AND] PR [DONE TO QUIT.] PR [GOOD LUCK!] CMD END TO CMD PR [] PRINT1 "COMMAND TOPLEVEL END TO SCORE PR ( SE [YOUR SCORE IS] SCORE2 :ITEMS [POINTS.] ) CMD END TO NOTHING PR [NOTHING HAPPENS.] CMD END TO DONE IF NOT :RNUM = 5 NOTHING LOCAL "SCORE MAKE "SCORE SCORE2 :ITEMS IF :SCORE = 0 NOTHING PR SE [YOUR SCORE IS] :SCORE IF :SCORE = 550 PR [PERFECT!] ELSE PRINT [THERE'S MORE TREASURE, THOUGH.] DONE END TO SCORE2 :LIST IF :LIST = [] OP 0 IF NOT FIRST FIRST :LIST = - 1 OP SCORE2 BF :LIST OP ( ITEM 2 FIRST :LIST ) + SCORE2 BF :LIST END TO ADVENTURE NODRAW PR [WELCOME TO LOGO ADVENTURE] PR [WRITTEN BY DON HOPKINS] PR [] PR [TYPE HELP FOR HELP] PR [] INIT LOOK END MAKE "STARTUP [ADVENTURE]