'MODULE 0 MAIN ******BOARDWALK******10-17-95 'CONVERTED FROM CURSED (SEE NEXT 4 REMS) 'CHANGED GAMEDTA.BAS TO CURSAV.BAS ON 1-24-91 'CHANGED TURNNUMBER TO GYNTURN FOR GIANT TURNS 18FEB92 'CHANGED TIMER ON 2-3-94 'CHANGED SAVE GAME TIME$ DATE$ 7-30-95 'CHANGED ROOMOBJECT$ LIMIT TO 15 OBJECTS THROUGHOUT 10-24-95 'MANY CHANGES ON THE WEEK OF 10-24-95 'copyright 1995 by John H. Doolittle All rights reserved. Thank you. '10-29-95 put spaces in logon name date time 'CONVERTED UPTOWN TO BOARDWALK STARTING 1-19-96 'changes through 1-28-96 'REPORT STUFF 3-5-96 ' REFIXED ORANGE FLAG 5-7-96 BOARDATA.TXT 10-24-96 CLS:DIM FLAG(30),OBJ$(30),OBJ2$(30),CLUE$(30),WURD$(30) STRT=TIMER CALL LOGON LOCATE 12,12:PRINT "ONE MOMENT PLEASE...." CALL SETUP 'MODULE 1 SET UP VARIABLES CALL TURN 'MODULE 2 RUN TURNS CALL CLOSING 'MODULE 3 END OF GAME STUFF END 'MODULE 0.1 LOGON SUB LOGON SHARED ANSWER$() DIM ANSWER$(205) INPUT "YOUR NAME-NUMBER PLEASE";ANSWER$(0) LET ANSWER$(0)=ANSWER$(0)+" "+TIME$+" "+DATE$ END SUB 'MODULE 1 SETUP SUB SETUP CALL ROOMINFO 'MODULE 1.1 READ ROOM INFORMATION CALL ROOMOBJECTS 'MODULE 1.2 READ ROOM OBJECTS CALL MOVEMENTTABLE 'MODULE 1.3 READ MOVEMENT TABLE CALL INVENTORY 'MODULE 1.4 INITIALIZE INVENTORY ARRAY ' TO AN EMPTY LIST CALL OTHERS 'MODULE 1.5 INITIALIZE OTHER VARIABLES END SUB 'MODULE 1.1 ROOMINFO SUB ROOMINFO SHARED DESCRIPTION$(),NUMBERROOMS,DESCRIBEFLAG(),ROOMDESCRIBE$(),ROOMDES2$() READ NUMBERROOMS DIM DESCRIPTION$(NUMBERROOMS),DESCRIBEFLAG(NUMBERROOMS),ROOMDESCRIBE$(NUMBERROOMS) DIM ROOMDES2$(NUMBERROOMS) FOR I = 1 TO NUMBERROOMS READ DESCRIPTION$(I) NEXT I DATA 33,BALLROOM,DRESS SHOP,JEWELRY STORE,BASKETBALL SHOOT,CRAFTS CENTER DATA SHOOTING GALLERY,ROLLER-COASTER,BOARDWALK,BOARDWALK,BOARDWALK DATA BOARDWALK,BOARDWALK,BOARDWALK,BOARDWALK,STORAGE ROOM DATA END OF BEACH,BEACH,WHARF,BEACH,BEACH DATA BEACH,TIDEPOOL,SURF,SURF,WHARF DATA SURF,SURF,SURF,WHARF,FISH MARKET DATA OCEAN FLOOR,END OF WHARF,SEAL ROCK FOR I=1 TO NUMBERROOMS LET DESCRIBEFLAG(I)=0 READ ROOMDESCRIBE$(I),ROOMDES2$(I) NEXT I REM ROOM 1 DATA "The music here in the BALLROOM, though melancholy, suggests that" DATA "love is in the air. Get cracking, you matchmaker, you." DATA "Here in the DRESS SHOP is a beautiful ballroom GOWN that just been" DATA "marked down to $115 ---WOW! Too bad you don't have that much, yet." DATA "The JEWELER* here in the JEWELRY STORE is eyeing you very closely." DATA "Andrea's getting jumpy, keeps shouting 'I'm not a thief!'" DATA "Here at the BASKETBALL SHOOT, you can SHOOT a BASKET and win a " DATA "stuffed ANIMAL. Cool! Except that you hate stuffed animals." DATA "It's funny that you haven't notice some sort of SIGN* here at " DATA "the CRAFTS CENTER. Perhaps you should return later." REM 6 DATA "Here at the SHOOTING GALLERY is an unhappy SAILOR*. He's trying" DATA "to win a stuffed ANIMAL for his date but can't SHOOT straight." DATA "Here at the ROLLER-COASTER, you can't tell who looks the most " DATA "pale - the people getting on or the people getting off." DATA "Here the BOARDWALK dead ends against the sheer wall of the sandstone" DATA "cliff. " DATA "Lots of splinters in this section of the BOARDWALK " DATA " " DATA "Excuse me! Isn't there a dress code on this BOARDWALK? " DATA " " REM 11 DATA "A badly burned, portly gentleman just passed by on this section " DATA "of the BOARDWALK. Doesn't he teach at Sac State? " DATA "On this section of the BOARDWALK, you can still hear the screams " DATA "coming from the folks enjoying the ROLLER-COASTER* " DATA "All along the BOARDWALK are steps leading down to the BEACH " DATA " " DATA "This end of the BOARDWALK ends outside a STORAGE ROOM" DATA " " DATA "The LOCKER in the STORAGE ROOM is probably full of good stuff," DATA "too bad it's locked. Andrea thinks you should find the key. Duh!" REM 16 DATA "Here the BEACH dead ends against the cliff wall. READ the SIGN*" DATA "and REVEAL something that you'll need." DATA "This is the section of BEACH, next to the WHARF that has the best" DATA "surf in the area. The pilings are too close to 'shoot the pier.'" DATA "This is the beginning of the world-famous WHARF. You wonder what" DATA "keeps the rotten-looking wooden structure up." DATA "An attractive, but poorly dressed WOMAN* sits here on the BEACH" DATA "gazing disconsolately out to sea. Is she swaying?" DATA "As you enter this section of the BEACH you overhear someone " DATA "talking about a fraternity party. Something about soap suds." REM 21 DATA "As you enter this section of the BEACH the STORAGE ROOM guy tells" DATA "Andrea that he has a hole in his pocket. Andrea says, 'oh.'" DATA "At the end of the beach is a terrific TIDEPOOL, which is uncovered" DATA "right now revealing a STARFISH*. He looks crabby." DATA "The SURF here near the cliff is too dangerous to surf." DATA " " DATA "The waves here near the WHARF curl very nicely. Ouch, some dude" DATA "just took a header off the end of his board. Ah, the taste of sand." DATA "A wharf GUARD* is taking things from people before letting them" DATA "GO SOUTH along the wharf. Isn't that illegal?" REM 26 DATA "The SURF here is quite cold. " DATA " " DATA "Andrea is complaining about the salt water of the SURF here " DATA " " DATA "The waves are smaller and less dangerous in this part of " DATA "the surf " DATA "This middle section of WHARF is opposite the FISH MARKET." DATA " " DATA "A somewhat downcast FISHMONGER* dominates the scene at the" DATA "FISH MARKET -- unless you count the smell." REM 31 DATA "The water here on the OCEAN FLOOR is quite clear and pleasant." DATA " You see something that a STARFISH* could go for." DATA "Here at the end of the WHARF you can see SEAL ROCK to the south," DATA "but you can't GO there until you MAKE a BRIDGE. Is that a pelican?" DATA "Here on SEAL ROCK you see a most forlorn PELICAN* who is hope-" DATA "lessly tangled in some fishing LINE. UNTANGLE him, please." END SUB 'MODULE 1.2 ROOM OBJECT INFORMATION SUB ROOMOBJECTS SHARED ROOMOBJECT$(),NUMBERROOMS DIM ROOMOBJECT$(NUMBERROOMS,15) FOR I=1 TO NUMBERROOMS FOR J=1 TO 15 LET ROOMOBJECT$(I,J)="EMPTY" NEXT J NEXT I END SUB 'MODULE 1.3 MOVEMENTTABLE SUB MOVEMENTTABLE SHARED MOVEMENTTABLE(),NUMBERROOMS DIM MOVEMENTTABLE(NUMBERROOMS,6) FOR I=1 TO NUMBERROOMS FOR J = 1 TO 6 READ MOVEMENTTABLE(I,J) NEXT J NEXT I DATA 0,8,0,0,0,0 DATA 0,9,0,0,0,0 DATA 0,10,0,0,0,0 DATA 0,11,0,0,0,0 DATA 0,12,0,0,0,0 DATA 0,13,0,0,0,0 DATA 0,14,0,0,0,0 DATA 1,0,9,0,0,16 DATA 2,0,10,8,1,17 DATA 3,0,11,9,0,18 DATA 4,0,12,10,0,19 DATA 5,0,13,11,0,20 DATA 6,0,14,12,0,21 DATA 7,0,15,13,0,0 DATA 0,0,0,14,0,0 DATA 0,23,17,0,8,0 DATA 0,24,18,16,9,0 DATA 0,25,19,17,10,0 DATA 0,26,20,18,11,0 DATA 0,27,21,19,12,0 DATA 0,28,22,20,13,0 DATA 0,0,0,21,0,0 DATA 16,0,0,0,0,0 DATA 17,0,0,0,0,0 DATA 18,29,0,0,0,0 DATA 19,0,0,0,0,0 DATA 20,0,0,0,0,0 DATA 21,0,0,0,0,0 DATA 25,32,30,0,0,0 DATA 0,0,0,29,0,0 DATA 0,0,0,0,29,0 DATA 29,33,0,0,0,0 DATA 32,0,0,0,0,0 END SUB 'MODULE 1.4 INVENTORY SUB INVENTORY SHARED INVENTORY$() DIM INVENTORY$(5) FOR I=1 TO 5 LET INVENTORY$(I)="EMPTY" NEXT I LET INVENTORY$(5)="SURFBOARD" END SUB 'MODULE 1.5 OTHERS SUB OTHERS SHARED GAMESTATE$,ROOM,TURNNUMBER,ROOMOBJECT$(),THING$,INVENTORY$(),_ FLAG(),OBJ$(),OBJ2$(),DESCRIBEFLAG(),ROOMDESCRIBE$(),ROOMDES2$(),_ GUESSNUMB,CLUE$(),WURD$(),NUMBERROOMS,LOGIC$,SLAMMER,TRYNUMB,TOTAL LET TURNNUMBER =0 LET THING$="" FOR I=1 TO 30:LET FLAG(I)=0:NEXT I 'SET FLAGS TO 0 'FLAG # MEANING OF 0 FLAG# MEANING OF 0 ' 1 GAME NOT OVER 2 SEAL ROCK BRIDGE NOT MADE 'FOR 1, 1 MEANS GAME WON -1 GAME LOST 2 MEANS GAME QUIT '3 PELICAN NOT UNTANGLED 4 FISH NOT SWAPPED '5 BASKET NOT SHOT 6 ANIMAL NOT GIVEN '7 DRIFTWOOD NOT REVEALED 8 DANCER NOT REVEALED '9 LOCKER LOCKED 10 STARFISH NOT SEEN '11 HICCUPS NOT CURED 12 GUARD* NOT FED '13 DOOR NOT LOCKED 14 EXITS SUB TO REFRESH SCREEN '18 GUESS MEDAL 19 orange not revealed '20 GUESS CANS '29 GUESS OYSTERS LET FLAG(18)=1:REM NOT FIRST TO BE GUESSED LET FLAG(29)=1:REM NOT THIS ONE EITHER 'SET UP WORD GUESSING DATA FOR I=1 TO NUMBERROOMS LET CLUE$(I)="":LET WURD$(I)="" NEXT I LET CLUE$(18)="OLYMPIC" LET WURD$(18)="MEDAL" LET CLUE$(20)="BEER" LET WURD$(20)="CANS" LET CLUE$(29)="CLAM" LET WURD$(29)="OYSTER" GUESSNUMB=0:'TOTAL NUMBER OF GUESSES AT WORDS TRYNUMB=0:'TOTAL # OF TRIES AT COMBO DOOR LOCK SLAMMER=0:'TOTAL # OF TRIES AT FINAL SOLUTION MATRIX LOGIC$="Logfal - " TOTAL=0 FOR I=1 TO 39 READ ROOM,J,ROOMOBJECT$(ROOM,J) NEXT I DATA 1,1,SIGN*,1,2,EMPTYMAN*,2,1,EMPTYGOWN DATA 3,1,JEWELER*,4,1,EMPTYBASKETBALL,5,1,EMPTYSIGN* DATA 6,1,SAILOR*,13,1,EMPTYSIGN*,13,2,EMPTYVENDING-MACHINE DATA 14,1,RECYCLER*,15,1,LOCKER*,15,2,EMPTYSCUBA DATA 15,3,EMPTYWETSUIT,15,4,EMPTYFIN,15,5,EMPTYSAWBUCK DATA 15,6,EMPTYC-NOTE,16,1,SIGN*,16,2,EMPTYDRIFTWOOD DATA 19,1,WOMAN*,20,1,EMPTYCANS,22,1,STARFISH* DATA 22,2,EMPTYSHELL*,29,1,EMPTYLADDER*,30,1,SIGN* DATA 30,2,FISHMONGER*,30,3,EMPTYFISH*,31,1,OYSTER DATA 31,2,LADDER*,33,1,PELICAN*,33,2,EMPTYFISH DATA 7,1,SIGN*,32,1,EMPTYBRIDGE*,33,3,BRIDGE* DATA 9,1,SIGN*,10,1,SIGN*,10,2,EMPTYORANGE DATA 25,1,GUARD*,15,7,EMPTYSIGN*,15,8,EMPTYKEY* 'THE STARTING ROOM IS THE ENTRYWAY - 7 ROLLER COASTER ROOM=7 FOR I=1 TO 17 'READ IN WORD!* CONVERSION READ OBJ$(I),OBJ2$(I) NEXT I DATA SIGN,SIGN*,MAN,MAN*,JEWELER,JEWELER* DATA BALL,BASKETBALL,SAILOR,SAILOR*,MACHINE,VENDING-MACHINE* DATA RECYCLER,RECYCLER*,LOCKER,LOCKER*,WOOD,DRIFTWOOD DATA WOMAN,WOMAN*,CAN,CANS,STARFISH,STARFISH* DATA LADDER,LADDER*,FISHMONGER,FISHMONGER*,PELICAN,PELICAN* DATA GUARD,GUARD*,BOARD,SURFBOARD END SUB 'MODULE 2 TURN SUB TURN SHARED FLAG(),TURNNUMBER DO UNTIL FLAG(1) <> 0 FLAG(14)=0 TURNNUMBER = TURNNUMBER + 1 IF TURNNUMBER=295 THEN BEEP 3:_ PRINT "Type SAVE GAME and then QUIT":_ PRINT "You can then return to this spot by typing":_ PRINT "BOARDWALK (at the DOS prompt) and later,":_ PRINT "as a command, RESTORE GAME":_ PRINT "Please forgive the necessary inconvenience." IF TURNNUMBER=300 THEN FLAG(1)=2 CALL DESCRIBE 'MODULE 2.1 DESCRIBE THE ROOM CALL COMMANDS 'MODULE 2.2 INPUT THE COMMANDS CALL EVALUATE 'MODULE 2.3 EVALUATE COMMANDS LOOP END SUB 'MODULE 2.1 DESCRIBE THE CURRENT ROOM SUB DESCRIBE SHARED DESCRIPTION$(),ROOM,MOVEMENTTABLE(),ROOMOBJECT$(),FLAG(),_ TURNNUMBER,INVENTORY$(),THING$,OBJECT$,DESCRIBEFLAG(),ROOMDESCRIBE$(),_ ROOMDES2$(),CLUE$(),WURD$(),GUESSNUMB,TRYNUMB,LOGIC$,ITEMNUMBER PRINT:PRINT IF TURNNUMBER=1 THEN CALL GAMESTARTER 'MODULE 2.1.1 IF DESCRIBEFLAG(ROOM)=1 THEN PRINT "You are at the ";DESCRIPTION$(ROOM) IF DESCRIBEFLAG(ROOM)=0 THEN__ PRINT ROOMDESCRIBE$(ROOM):PRINT ROOMDES2$(ROOM):DESCRIBEFLAG(ROOM)=1 DELAY 0.3 PRINT "The noticeable exits are: "; IF MOVEMENTTABLE(ROOM,1)<>0 THEN PRINT "NORTH "; IF MOVEMENTTABLE(ROOM,2)<>0 THEN PRINT "SOUTH "; IF MOVEMENTTABLE(ROOM,3)<>0 THEN PRINT "EAST "; IF MOVEMENTTABLE(ROOM,4)<>0 THEN PRINT "WEST "; IF MOVEMENTTABLE(ROOM,5)<>0 THEN PRINT "UP "; IF MOVEMENTTABLE(ROOM,6)<>0 THEN PRINT "DOWN "; PRINT DELAY 0.3 PRINT "The noticeable objects are: "; COUNTER=0 FOR I=1 TO 15 LET STUFF$= ROOMOBJECT$(ROOM,I) IF LEFT$(STUFF$,5)<>"EMPTY" THEN PRINT " ";ROOMOBJECT$(ROOM,I);_ :COUNTER=COUNTER+1 NEXT I IF COUNTER=0 THEN PRINT "noticeably absent!"; PRINT DELAY 0.3 PRINT "You are carrying: "; COUNTER=0 FOR I= 1 TO 5 IF INVENTORY$(I)<>"EMPTY" THEN COUNTER=COUNTER + 1:_ PRINT INVENTORY$(I);" "; NEXT I IF COUNTER = 0 THEN PRINT "nothing at all." PRINT DELAY 0.3 IF ROOM=18 OR ROOM=20 OR ROOM=29 THEN DELAY 0.3 IF (ROOM=18 OR ROOM=20 OR ROOM=29) AND FLAG(ROOM)=0 THEN PRINT _ "Andrea says that she's thinking of a ";LEN(WURD$(ROOM));_ "-letter word":PRINT _ "that has something to do with ";CLUE$(ROOM);".":DELAY 0.3:PRINT:PRINT _ "If you would like to guess what the word is, type GUESS followed ":_ PRINT "by your guess, for example, GUESS COW ":DELAY 0.3 THING$="ORANGE" IF ROOM=25 AND FNCARRY=1 THEN _ LET INVENTORY$(ITEMNUMBER)="EMPTY":PRINT:FLAG(12)=1:_ LET ROOMOBJECT$(ROOM,1)="EMPTY":FLAG(14)=1: PRINT _ "The GUARD* takes the ORANGE and wanders off. Creep." THING$="CANS" IF ROOM=14 AND FNCARRY=1 THEN _ LET INVENTORY$(ITEMNUMBER)="BUCK":PRINT:PRINT _ "The RECYCLER* glommed on to the CANS and slipped you a BUCK. Cool!":_ PRINT:LET ROOMOBJECT$(ROOM,1)="EMPTY":_ LET FLAG(14)=1:REM EXITS SUB THING$="DETECTOR" IF ROOM=21 AND FNCARRY=1 THEN LET INVENTORY$(ITEMNUMBER)="KEY":PRINT:PRINT _ "You detected and picked up a KEY. Promising!":PRINT:PRINT _ "Just then the rental guy came by and took back the overdue":PRINT _ "DETECTOR. Andrea says she doesn't remember anything about":PRINT _ "a time limit. Da noive a da guy!":LET FLAG(14)=1 END IF THING$="OYSTER" IF ROOM=22 AND FNCARRY=1 THEN LET INVENTORY$(ITEMNUMBER)="PEARL":PRINT PRINT"You slip momentarily in the TIDEPOOL, dropping the OYSTER into the" PRINT "water. In a flash, the STARFISH has it pried open and consumed," PRINT "(that was disgusting), leaving you with only the PEARL. Yes!" LET FLAG(14)=1 END IF THING$="PEARL" IF ROOM=3 AND FNCARRY=1 THEN LET INVENTORY$(ITEMNUMBER)="C-NOTE" PRINT "The JEWELER's on you like cheese on a burger when he sees the" PRINT "PEARL. Before you can react, he's taken the PEARL and given " PRINT "you $100. Andrea asks if it's dress time.":LET FLAG(14)=1 END IF THING$="GOWN" IF ROOM=19 AND FNCARRY=1 THEN FLAG(1)=1:INVENTORY$(ITEMNUMBER)="EMPTY" PRINT PRINT "The WOMAN*'s face lights up when she sees the GOWN that " PRINT "you and Andrea hand her. After thanking you profusely," PRINT "she sprints off in the direction of the changing room." Delay 5.5 PRINT PRINT "#################################################" PRINT:PRINT PRINT "You follow the her to the BALLROOM in time to see the" PRINT "happy couple dancing the waltz. Whatever the waltz is." PRINT "The MAN* turns out to be ex-surfing champ Blackjack Brown," PRINT "who tosses you the wax you need to surf your best. Dude." EXIT SUB END IF IF FLAG(11)=0 THEN PRINT _ "Andrea has the hiccups -- wants to tell you something - but can't!" PRINT END SUB 'MODULE 2.1.1 GAME STARTER -- PRINT OUT INTRODUCTORY REMARKS SUB GAMESTARTER CLS PRINT " WELCOME TO THE BOARDWALK!" PRINT PRINT " Okay, here's the deal: Your seriously bitchin' poem, " PRINT "'Surf's up, dude!' won the Surfer's Open Poetry Contest and" PRINT "now you have the first prize: King Kamehameha's original," PRINT "humungously long, wooden surfboard. Excellant! Unfortunately," PRINT "you can't try it out -- no wax! Bummer! " PRINT " You'll just have to wander around the BOARDWALK doing good" PRINT "until virtue is rewarded and you happen upon some wax. Hurry" PRINT "though -- that storm out in the Pacific has stirred up some" PRINT "kicker waves. Tubular!" PRINT PRINT " Give COMMANDs as VERB then OBJECT, Such as GO NORTH," PRINT "READ SIGN, RIDE ROLLER-COASTER*, CLIMB LADDER*, SHOOT BASKET," PRINT "UNTANGLE PELICAN*, GET SCUBA (Self-Contained Underwater Breathing" PRINT "Apparatus - if you must know), PAY SAWBUCK ($10), PAY FIN ($5)" PRINT "PAY C-NOTE ($100), MAKE BRIDGE, SWAP FISH, DEPOSIT BUCK ($1), etc." PRINT " Exceptions to this two-word sentence rule are single-" PRINT "letter commands such as N to GO NORTH, and U to GO UP." PRINT " P.S. Don't try to get objects ending in an *, e.g., SAFE*," PRINT "as they are quite unobtainable. " PRINT PRINT "If you're through taking notes, press the Enter key to begin" DO WHILE LEN(INKEY$)=0:LOOP CLS END SUB 'MODULE 2.1.2 ERASER kept as dummy in case it's referenced somewhere SUB ERASER REM END SUB 'MODULE 2.1.3 MESSAGE AFTER WORD GAME IS COMPLETED SUB MESSAGE SHARED ROOM,ROOMOBJECT$(),FLAG() IF ROOM= 20 THEN LET ROOMOBJECT$(ROOM,1)="CANS" LET FLAG(18)=0:REM ENABLES YOU TO GET MEDAL CLUE PRINT "Andrea asks if you noticed how many CANS people strew about. Strew?" END IF IF ROOM=18 THEN LET ROOMOBJECT$(13,1)="SIGN*" LET ROOMOBJECT$(13,2)="VENDING-MACHINE*" LET FLAG(29)=0:REM ENABLES YOU TO GET OYSTER CLUE PRINT "Andrea suggests you DEPOSIT the BUCK at the VENDING-MACHINE*" PRINT "and rent a metal DETECTOR" END IF IF ROOM=29 THEN LET ROOMOBJECT$(29,1)="LADDER*" PRINT "Andrea suggests you CLIMB LADDER* down to the OYSTER." END IF END SUB 'MODULE 2.2 COMMANDS SUB COMMANDS SHARED VERB$, OBJECT$,ROOM,DESCRIPTION$(),FLAG(),INVENTORY$(),_ ROOMOBJECT$(),OBJ$(),OBJ2$(),C$,ANSWER$(),TURNNUMBER,_ CLUE$(),WURD$(),GUESSNUMB,TOTAL IF FLAG(1)<>0 THEN EXIT SUB IF FLAG(14)=1 THEN EXIT SUB ' BE SURE THAT INPUT IS OK DUMMY2=0 DUMMY2=0 DO UNTIL DUMMY2=1 'C$=THE INPUTTED COMMAND SENTENCE - MAY BE MORE THAN 2 WORDS 'BUT ONLY THE FIRST TWO WORDS ARE ACCEPTED ' THE FIRST IS CALLED VERB$ AND THE SECOND OBJECT$ LET C$="" PRINT:PRINT PRINT "*****************************************************************" DO UNTIL C$<>"" INPUT "COMMAND";C$ 'GET THE RAW SENTENCE LOOP REM SPACES TAKE OFF LEADING AND PERHAPS TRAINING CHR$(32)'S DO WHILE RIGHT$(C$,1)=CHR$(32) LET C$=LEFT$(C$,LEN(C$)-1) LOOP LET DUMMY$="" 'CONVERT TO UPPERCASE FOR I=1 TO LEN (C$) IF ASC(MID$(C$,I,1))>96 AND ASC(MID$(C$,I,1))<123 THEN_ LET DUMMY$=DUMMY$+CHR$(ASC(MID$(C$,I,1))-32)_ ELSE LET DUMMY$=DUMMY$+MID$(C$,I,1) NEXT I LET C$=DUMMY$ LET I=1 'LETTER COUNTER DO WHILE NOT (ASC (MID$(C$,I,1)) = 32) AND NOT (I= LEN(C$)) 'LOOP TO LOOK FOR FIRST SPACE LET I = I + 1 'WHICH SHOULD DENOTE END OF FIRST LOOP 'WORD LET VERB$=MID$(C$,1,I) 'ASSIGN THOSE CHARACTERS TO VERB$ LET ANSWER$(TURNNUMBER)=C$ LET OBJECT$ = MID$(C$,I+1,LEN(C$)) 'ASSIGN REST OF SENTENCE TO OBJECT$ IF LEN(OBJECT$)<>0 THEN VERB$=LEFT$(VERB$,LEN(VERB$)-1) FOR J=1 TO 20 'CONVERT OBJECT$ LACKING * OR ! IF OBJECT$=OBJ$(J) THEN LET OBJECT$=OBJ2$(J) NEXT J 'CHECK FOR EXTRA WORDS COUNTER=0 FOR J=1 TO LEN(OBJECT$) LET DUMMY$=MID$(OBJECT$,J,1) IF DUMMY$=CHR$(32) THEN COUNTER=COUNTER+1 NEXT J IF COUNTER<>0 THEN PRINT "Two words only, please." _ ELSE DUMMY2=1 LOOP END SUB 'MODULE 2.3 EVALUATE THE COMMANDS SUB EVALUATE SHARED VERB$, OBJECT$,ROOM,DIRECTION,MOVEMENTTABLE(),NUMBERROOMS,_ ROOMOBJECT$(),ITEMNUMBER,TURNNUMBER,THING$,INVENTORY$(),FLAG(),_ GUESSNUMB,CLUE$(),WURD$(),LOGIC$,TRYNUMB,SLAMMER,TOTAL IF FLAG(1)<>0 THEN EXIT SUB IF FLAG(14)=1 THEN EXIT SUB SELECT CASE VERB$ CASE "QUIT","Q" LET FLAG(1)=2 'GAME NOT WON(1) OR LOST(-1):EXIT SELECT CASE "SAVE" IF OBJECT$<>"GAME" THEN PRINT "SAVE GAME":EXIT SELECT OPEN "BOARDSAV.BAS" FOR OUTPUT AS #1 WRITE #1,ROOM FOR I=1 TO 5 LET DUMMY$="" FOR J=1 TO LEN(INVENTORY$(I)) LET DUMMY$=DUMMY$+CHR$(ASC(MID$(INVENTORY$(I),J,1))+4) NEXT J WRITE #1,DUMMY$ NEXT I FOR I=1 TO NUMBERROOMS FOR J=1 TO 15 LET DUMMY$="" FOR K=1 TO LEN (ROOMOBJECT$(I,J)) LET DUMMY$=DUMMY$+CHR$(ASC(MID$(ROOMOBJECT$(I,J),K,1))+4) NEXT K WRITE #1,DUMMY$ NEXT J NEXT I FOR I=1 TO 30 WRITE #1,FLAG(I) NEXT I WRITE #1,GUESSNUMB,LOGIC$,SLAMMER,TRYNUMB,TOTAL CLOSE #1 PRINT "OK EXIT SELECT CASE "RESTORE" IF OBJECT$<> "GAME" THEN PRINT "Try RESTORE GAME":EXIT SELECT OPEN "BOARDSAV.BAS" FOR INPUT AS #1 INPUT #1,ROOM FOR I=1 TO 5 INPUT #1,DUMMY$ LET INVENTORY$(I)="" FOR J=1 TO LEN(DUMMY$) LET INVENTORY$(I)=INVENTORY$(I)+CHR$(ASC(MID$(DUMMY$,J,1))-4) NEXT J NEXT I FOR I=1 TO NUMBERROOMS FOR J=1 TO 15 INPUT #1,DUMMY$ LET ROOMOBJECT$(I,J)="" FOR K=1 TO LEN (DUMMY$) LET ROOMOBJECT$(I,J)=ROOMOBJECT$(I,J)+CHR$(ASC(MID$(DUMMY$,K,1))-4) NEXT K NEXT J NEXT I FOR I=1 TO 30 INPUT #1,FLAG(I) NEXT I INPUT #1,GUESSNUMB,LOGIC$,SLAMMER,TRYNUMB,TOTAL CLOSE #1 PRINT "OK" EXIT SELECT CASE "INVENTORY","I" COUNTER=0 PRINT " YOU CARRY: "; FOR I= 1 TO 5 IF INVENTORY$(I)<>"EMPTY" THEN COUNTER=COUNTER + 1:_ PRINT INVENTORY$(I);" "; NEXT I IF COUNTER = 0 THEN PRINT "NOTHING AT ALL" :EXIT SELECT PRINT:EXIT SELECT CASE "GO","MOVE","N","S","E","W","U","D" IF LEN (VERB$)=1 THEN OBJECT$=VERB$ IF OBJECT$="NORTH" OR OBJECT$="N" THEN DIRECTION = 1 IF OBJECT$="SOUTH" OR OBJECT$="S" THEN DIRECTION = 2 IF OBJECT$="EAST" OR OBJECT$="E" THEN DIRECTION = 3 IF OBJECT$="WEST" OR OBJECT$="W" THEN DIRECTION = 4 IF OBJECT$="UP" OR OBJECT$="U" THEN DIRECTION = 5 IF OBJECT$="DOWN" OR OBJECT$="D" THEN DIRECTION = 6 IF DIRECTION=2 AND ROOM=32 AND FLAG(2)=0 THEN PRINT _ "You'll need to MAKE a BRIDGE to GO SOUTH":EXIT SELECT IF DIRECTION=2 AND ROOM=25 AND FLAG(12)=0 THEN PRINT _ "The GUARD* wants a piece of fruit first. Shakedown.":EXIT SELECT IF DIRECTION=4 AND ROOM=15 AND FLAG(13)=1 THEN PRINT _ "Can't the DOOR's locked. Andrea says: Try - READ SIGN*":EXIT SELECT IF DIRECTION=2 AND ROOM=7 AND FLAG(11)=0 THEN PRINT _ "Help Andrea with her hiccups before moving on.":EXIT SELECT IF MOVEMENTTABLE (ROOM,DIRECTION) = 0 THEN _ PRINT "You can't go that way." ELSE _ LET ROOM = MOVEMENTTABLE (ROOM,DIRECTION) EXIT SELECT CASE "GET","TAKE" IF OBJECT$="SURFBOARD" THEN PRINT _ "Leave it here until you get some wax":EXIT SELECT IF FNPRESENT = 0 THEN PRINT "I DON'T SEE ";OBJECT$:EXIT SELECT IF RIGHT$(OBJECT$,1)="*" THEN PRINT "I CAN'T HANDLE IT":EXIT SELECT FOR I=1 TO 5 IF INVENTORY$(I)="EMPTY" THEN INVENTORY$(I)=OBJECT$:_ PRINT "GOT IT":ROOMOBJECT$(ROOM,ITEMNUMBER)="EMPTY":_ EXIT SELECT NEXT I PRINT "You're carrying too much. Drop something first." EXIT SELECT CASE "PUT","DROP","GIVE" IF OBJECT$="SURFBOARD" THEN PRINT_ "Andrea thinks you'll need it.":EXIT SELECT IF OBJECT$="FISH" THEN PRINT "Try - SWAP FISH":EXIT SELECT IF OBJECT$="BASKETBALL" THEN PRINT _ "Try - SHOOT BASKET":EXIT SELECT THING$="ANIMAL":IF OBJECT$="ANIMAL" AND ROOM=6 AND FNCARRY =1 _ AND FLAG(6)=0 THEN LET INVENTORY$(ITEMNUMBER)="KNIFE":_ LET FLAG(6)=1:LET ROOMOBJECT$(ROOM,1)="EMPTY": PRINT _ "The grateful sailor runs off to find his date, but not"_ "before giving you his swell pocket KNIFE!":EXIT SELECT IF OBJECT$="C-NOTE" OR OBJECT$="SAWBUCK" OR OBJECT$="FIN" THEN _ PRINT "Try PAY -- Andrea fears you'll lose them.":_ EXIT SELECT THING$=OBJECT$ IF FNCARRY=0 THEN PRINT "You don't have the ";OBJECT$:EXIT SELECT FOR J=1 TO 15 IF ROOMOBJECT$(ROOM,J)="EMPTY"THEN ROOMOBJECT$(ROOM,J)=OBJECT$_ :LET INVENTORY$(ITEMNUMBER)="EMPTY" :PRINT "OK":_ EXIT SELECT NEXT J PRINT "This room is full; take it elsewhere":EXIT SELECT CASE "READ" IF FNPRESENT=0 THEN PRINT _ "I don't see the ";OBJECT$:EXIT SELECT IF ROOM=5 THEN PRINT _ "It says: Bring DRIFTWOOD, LINE, and a KNIFE here and":PRINT _ "type MAKE MOBILE. We have buyers standing by! Do it now!":_ EXIT SELECT IF ROOM=7 AND FLAG(11)=0 THEN PRINT _ "The sign says: To ride on the big dipper, type":PRINT_ "RIDE ROLLER-COASTER* The first ride is free.":EXIT SELECT IF ROOM=7 AND FLAG(11)=1 THEN PRINT _ "It says: Closed for cleaning.":EXIT SELECT IF ROOM=1 THEN PRINT _ "It says: Solve the following riddle and REVEAL the object,":PRINT_ "e.g., REVEAL ROMANCER. Here's the riddle:":PRINT_ " I rhyme well with PRANCER,":PRINT_ " but don't rhyme well with CUPID;":PRINT _ " You move to the music,":PRINT_ " and try not to look stupid.":PRINT:EXIT SELECT IF ROOM=30 THEN PRINT _ "It says: Will pay cash for FISH - 5 fins for a fin.":PRINT _ "Bring FISH here and type SWAP FISH":EXIT SELECT IF ROOM=16 THEN PRINT _ "It says: REVEAL something that is nine letters long and ":PRINT _ "frequently found on ocean beaches.":EXIT SELECT IF ROOM=13 THEN PRINT _ "It says: DEPOSIT BUCK here to rent a metal DETECTOR":EXIT SELECT IF ROOM=9 THEN PRINT _ "It says: If you should REVEAL APPLE then the DRESS SHOP":PRINT_ "is west of the JEWELRY STORE.":EXIT SELECT IF ROOM=10 THEN PRINT _ "It says: If you should REVEAL ORANGE then the JEWELRY":PRINT_ "STORE is east of the CRAFTS CENTER.":EXIT SELECT IF ROOM=15 THEN PRINT "It says: The door lock is a 5 switch (Up or Down) combination" PRINT "To open, try different combinations of U and D: e.g., " PRINT "TRY UDUDU or TRY DDDUD. Then, listen closely to hear the" PRINT "number of clicks coming from the lock mechanism. Five " PRINT "clicks and the door will swing open. Good luck." EXIT SELECT END IF PRINT "Andrea says that we're in the wrong room for that." EXIT SELECT CASE ",DRINK","IMBIBE" PRINT "Andrea says that you are not thirsty.":EXIT SELECT CASE "GUESS" IF ROOM<>18 AND ROOM<>20 AND ROOM<>29 THEN PRINT _ "Andrea says that this isn't the place for that.":EXIT SELECT IF FLAG(ROOM)=1 THEN PRINT _ "Andrea says that you're done with this one.":EXIT SELECT IF LEN(OBJECT$)<>LEN(WURD$(ROOM)) THEN PRINT _ "Andreas says that she's thinking of a ";LEN(WURD$(ROOM));_ "-letter word. Try again.":EXIT SELECT GUESSNUMB=GUESSNUMB+1 IF OBJECT$=WURD$(ROOM) THEN FLAG(ROOM)=1:_ CALL MESSAGE:EXIT SELECT HITS=0 FOR I=1 TO LEN(OBJECT$) LET DUMMY$=MID$(OBJECT$,I,1) FOR J=1 TO LEN(WURD$(ROOM)) IF DUMMY$=MID$(WURD$(ROOM),J,1) THEN _ HITS=HITS+1:EXIT FOR NEXT J NEXT I PRINT "Andrea says that ";HITS;" letter(s) of your word ":PRINT _ "are also found in her word. Try again." EXIT SELECT CASE "PLAY" PRINT "Andrea warns that we have no time for such foolishness." EXIT SELECT CASE "OPEN" IF ROOM=15 THEN PRINT "Try --- UNLOCK LOCKER":EXIT SELECT PRINT "Doesn't work. ":EXIT SELECT CASE "CLOSE" PRINT "Andrea thinks you should leave it open.":EXIT SELECT CASE "BREAK" PRINT "Andrea is sulking. She hates violence." EXIT SELECT CASE "DIG" PRINT "It's hopeless. This is a job for a metal DETECTOR." EXIT SELECT CASE "USE" PRINT "To do what? Be more specific." EXIT SELECT CASE "UNLOCK" THING$="KEY" IF FNCARRY=0 THEN PRINT _ "Get the key first.":EXIT SELECT IF ROOM<>15 THEN PRINT "Not here":EXIT SELECT IF FLAG(9)=1 THEN PRINT "Done that.":EXIT SELECT LET FLAG(9)=1:LET ROOMOBJECT$(ROOM,2)="SCUBA" LET ROOMOBJECT$(ROOM,3)="WETSUIT" LET INVENTORY$(ITEMNUMBER)="EMPTY":PRINT _ "You see a WETSUIT and SCUBA in the LOCKER. The KEY is stuck.":_ DELAY 0.3:PRINT "Oh great, the door just slammed shut locking.":_ PRINT "Andrea thinks you should READ the SIGN*." LET ROOMOBJECT$(ROOM,7)="SIGN*" LET ROOMOBJECT$(ROOM,8)="KEY*" LET FLAG(13)=1 EXIT SELECT CASE "PICK" PRINT "Relax kid --- Houdini you're not.":EXIT SELECT CASE "CLIMB" IF ROOM=31 THEN PRINT "Up you go! Watch out for the bends.":_ LET ROOM=29:EXIT SELECT IF ROOM<>29 THEN PRINT "Not here.":EXIT SELECT THING$="WETSUIT": IF FNCARRY=0 THEN PRINT _ "The water is cold, GET a WETSUIT.":EXIT SELECT THING$="SCUBA":IF FNCARRY=0 THEN PRINT _ "At this depth, you'll need diving equipment (SCUBA)":EXIT SELECT LET ROOM=31:PRINT "A little awkward -- but OK" EXIT SELECT CASE "DEPOSIT" IF OBJECT$<>"BUCK" THEN PRINT _ "Andrea says that the only thing you DEPOSIT is the BUCK":EXIT SELECT IF ROOM<>13 THEN PRINT "Not here.":EXIT SELECT THING$="BUCK":IF FNCARRY<>1 THEN PRINT_ "Andrea says you need to GET the BUCK first.":EXIT SELECT LET INVENTORY$(ITEMNUMBER)="DETECTOR" PRINT "You now carry a fine metal DETECTOR. It says:" PRINT "For BEACH use only.":EXIT SELECT CASE "PAY" IF ROOM<>2 THEN PRINT "Not here.":EXIT SELECT DUMMY=0 THING$=OBJECT$:IF FNCARRY=0 THEN PRINT _ "You don't have the ";OBJECT$:EXIT SELECT IF OBJECT$="C-NOTE" THEN TOTAL=TOTAL+100:DUMMY=1 IF OBJECT$="SAWBUCK" THEN TOTAL=TOTAL+10:DUMMY=1 IF OBJECT$="FIN" THEN TOTAL=TOTAL+5:DUMMY=1 INVENTORY$(ITEMNUMBER)="EMPTY" PRINT "The total paid so far is ";TOTAL;" dollars." PRINT "Additional needed for GOWN = ";115-TOTAL;" dollars." IF TOTAL=115 THEN LET INVENTORY$(ITEMNUMBER)="GOWN":_ LET ROOMOBJECT$(ROOM,1)="EMPTY":PRINT:PRINT _ "The shopkeeper takes the last of your money and":PRINT_ "gives you the beautiful ballroom GOWN.":EXIT SELECT IF DUMMY=0 THEN PRINT "That's not for that." EXIT SELECT CASE "RIDE" IF ROOM<>7 THEN PRINT "Not here.":EXIT SELECT IF FLAG(11)=1 THEN PRINT _ "The ROLLER-COASTER* is closed for cleaning.":EXIT SELECT LET FLAG(11)=1:LET ROOMOBJECT$(4,1)="BASKETBALL" PRINT "You and Andrea have never been so scared. Andrea's hiccups are" PRINT "definitely gone. She says she wants to see you SHOOT a BASKET." EXIT SELECT CASE "UNTANGLE" IF ROOM<>33 THEN PRINT "Not here.":EXIT SELECT IF FLAG(3)=1 THEN PRINT "Not again.":EXIT SELECT LET FLAG(3)=1:LET ROOMOBJECT$(ROOM,1)="LINE" LET ROOMOBJECT$(ROOM,2)="FISH":PRINT _ "Ain't that the darndest thing -- the grateful PELICAN has gone ":PRINT_ "off and returned with lots of smelly FISH. Imagine your pleasure." EXIT SELECT CASE "IMAGINE" PRINT "Cute --- very cute.":EXIT SELECT CASE "SWAP" IF ROOM<>30 THEN PRINT "Not here.":EXIT SELECT IF FLAG(4)=1 THEN PRINT "Not again.":EXIT SELECT THING$="FISH":IF FNCARRY=0 THEN PRINT "GET the FISH first.":EXIT SELECT FLAG(4)=1:INVENTORY$(ITEMNUMBER)="FIN" ROOMOBJECT$(ROOM,2)="FISH*":PRINT _ "The nice FISHMONGER has given you a FIN ($5) for the FISH." EXIT SELECT CASE "SHOOT" IF ROOM<>4 THEN PRINT "Not here.":EXIT SELECT IF FLAG(5)=1 THEN PRINT "Not again.":EXIT SELECT THING$="BASKETBALL":IF FNCARRY=0 THEN PRINT _ "GET the BASKETBALL first.":EXIT SELECT PRINT "Nothing but net! You coulda been a contenda! Your reward is a " PRINT "nice stuffed ANIMAL. Andrea turns away - she's allergic." LET INVENTORY$(ITEMNUMBER)="ANIMAL" EXIT SELECT CASE "REVEAL" IF ROOM<>1 AND ROOM<>9 AND ROOM<>10 AND ROOM<>16 THEN PRINT_ "Not here.":EXIT SELECT IF ROOM=16 THEN IF FLAG(7)=1 THEN PRINT "Not again.":EXIT SELECT IF LEN(OBJECT$)<>9 THEN PRINT _ "REVEAL a word 9 letters long, please.":EXIT SELECT IF OBJECT$<>"DRIFTWOOD" THEN PRINT "No, try again.":EXIT SELECT LET ROOMOBJECT$(ROOM,2)="DRIFTWOOD":LET FLAG(7)=1:PRINT _ "Andrea wonders why you hadn't notice the DRIFTWOOD and ":PRINT_ "bets that you could MAKE a swell MOBILE with it at the":PRINT_ "CRAFTS CENTER.":LET ROOMOBJECT$(5,1)="SIGN*":_ EXIT SELECT END IF IF ROOM=1 THEN IF FLAG(8)=1 THEN PRINT "Not again.":EXIT SELECT IF OBJECT$<>"DANCER" THEN PRINT "No, try again.":EXIT SELECT LET FLAG(8)=1:LET ROOMOBJECT$(ROOM,2)="MAN*" PRINT "Andrea notices the forlorn figure of a MAN* dancing alone." END IF IF ROOM=9 THEN IF OBJECT$<>"APPLE" THEN PRINT "I'm confused - READ SIGN*":EXIT SELECT PRINT "Andrea thinks you fell for an AFFIRMING THE CONSEQUENT " PRINT "fallacy. Look over that section of the workbook.":_ LET LOGIC$=LOGIC$+"..AFFIRM..":EXIT SELECT END IF IF ROOM=10 THEN IF FLAG(19)=1 THEN PRINT "Not again.":EXIT SELECT IF OBJECT$<>"ORANGE" THEN PRINT "I'm confused -- READ the SIGN*":EXIT SELECT LET ROOMOBJECT$(ROOM,2)="ORANGE":LET FLAG(19)=1 PRINT "Andrea suggests we OFFER the ORANGE to the GUARD*":EXIT SELECT END IF EXIT SELECT CASE "MAKE" IF ROOM<>32 AND ROOM<>5 THEN PRINT "Not here.":EXIT SELECT IF ROOM=32 THEN IF FLAG(2)=1 THEN PRINT "It's been done.":EXIT SELECT LET ROOMOBJECT$(ROOM,1)="BRIDGE*" THING$="SURFBOARD":IF FNCARRY=1 THEN _ LET INVENTORY$(ITEMNUMBER)="EMPTY" ELSE PRINT "WEIRD":EXIT SELECT PRINT "The huge SURFBOARD makes a nice BRIDGE and you can now GO SOUTH.":_ LET FLAG(2)=1:EXIT SELECT END IF IF ROOM=5 THEN THING$="DRIFTWOOD":IF FNCARRY=0 AND FLAG(7)=0 THEN _ PRINT "REVEAL object on BEACH first.":EXIT SELECT IF FNCARRY=0 THEN PRINT "GET the DRIFTWOOD.":EXIT SELECT THING$="LINE":IF FNCARRY=0 THEN PRINT _ "GET some LINE first.":EXIT SELECT THING$="KNIFE":IF FNCARRY=0 THEN PRINT _ "Andrea says you'll need a KNIFE.":EXIT SELECT THING$="DRIFTWOOD":LET INVENTORY$(ITEMNUMBER)="EMPTY" THING$="LINE":LET INVENTORY$(ITEMNUMBER)="EMPTY" THING$="KNIFE":LET INVENTORY$(ITEMNUMBER)="SAWBUCK" PRINT "The owner quickly sold your excellent MOBILE, giving you" PRINT "a sawbuck ($10). Is there no end to your talent? Don't speak." END IF EXIT SELECT CASE "OFFER" IF ROOM<>25 THEN PRINT "Not here":EXIT SELECT IF FLAG(12)=1 THEN PRINT "Not again":EXIT SELECT IF OBJECT$<>"ORANGE" THEN PRINT "Not that.":EXIT SELECT THING$="ORANGE":IF FNCARRY=0 THEN PRINT "You don't have it.":EXIT SELECT LET FLAG(12)=1 LET ROOMOBJECT$(ROOM,1)="EMPTY" LET INVENTORY$(ITEMNUMBER)="EMPTY" PRINT "The GUARD* wanders off eating the ORANGE without saying thanks." EXIT SELECT CASE "TRY" IF ROOM<>15 THEN PRINT "Not here":EXIT SELECT IF FLAG(13)=0 THEN PRINT "No need":EXIT SELECT LET COMBO$="DUDDU" IF (LEN(OBJECT$)<>5)OR (LEFT$(OBJECT$,1)<>"U" AND LEFT$(OBJECT$,1)<>"D")_ THEN PRINT "Try - TRY UDUDU or some such.":EXIT SELECT TRYNUMB=TRYNUMB+1 IF COMBO$=OBJECT$ THEN LET FLAG(13)=0 PRINT "The door swings gently open. Andrea says --well done":EXIT SELECT END IF HITS=0 FOR I=1 TO 5 LET DUMMY$=MID$(OBJECT$,I,1) IF DUMMY$=MID$(COMBO$,I,1) THEN HITS=HITS+1 NEXT I PRINT "You hear the lock mechanism whir and click ";HITS;" times." EXIT SELECT CASE "KILL","MURDER","RAPE","DESTROY","ASSAULT" PRINT "Your mom is right - you watch entirely too much tv." EXIT SELECT CASE ELSE PRINT "Andrea says to try another verb.":EXIT SELECT END SELECT END SUB 'MODULE 2.3.1 DEFINE THE FUNCTION- IS THE OBJECT PRESENT? DEF FNPRESENT SHARED ROOMOBJECT$(),OBJECT$,ITEMNUMBER FOR J=1 TO 15 IF ROOMOBJECT$(ROOM,J)=OBJECT$ THEN _ FNPRESENT=1:ITEMNUMBER=J:EXIT DEF NEXT J FNPRESENT=0 END DEF 'MODULE 2.3.2 DEFINE THE FUNCTION- IS IT BEING CARRIED? DEF FNCARRY SHARED INVENTORY$(),THING$,ITEMNUMBER FOR I = 1 TO 5 IF INVENTORY$(I)=THING$ THEN FNCARRY = 1: ITEMNUMBER = I: EXIT DEF NEXT I FNCARRY=0 END DEF 'MODULE 2.4 UPDATE DATA SUB UPDATE END SUB 'MODULE 3 CLOSING SUB CLOSING SHARED FLAG(),TURNNUMBER,ANSWER$(),STRT,GUESSNUMB,LOGIC$,TRYNUMB,SLAMMER PRINT:PRINT IF FLAG(1)=1 THEN PRINT " ***** HOORAY FOR YOU!! YOU'VE WON THE GAME!! ****" PRINT FOR I=1 TO 4: PRINT:NEXT I INPUT "Be sure that your disk is in the drive and press ENTER. OK";DUMMY$ DIM DTA(40),DTA$(10) OPEN "REPORT.DTA" FOR INPUT AS #1 REM RETRIEVES OLD DATA FROM REPORT.DTA FOR I=1 TO 40 INPUT #1,DTA(I) NEXT I FOR I=1 TO 10 INPUT #1,DTA$(I) NEXT I CLOSE #1 LET DTA(12)=FLAG(1):LET DTA(37)=DTA(37)+INT((TIMER-STRT)/6) OPEN "REPORT.DTA" FOR OUTPUT AS #1 REM SENDS UPDATED DATA TO REPORT.DTA (WITH NAIME$) FOR I=1 TO 40 WRITE #1,DTA(I) NEXT I FOR I=1 TO 10 WRITE #1,DTA$(I) NEXT I CLOSE #1 OPEN "BOARDATA.TXT" FOR APPEND AS #2 PRINT #2,TIME$,GUESSNUMB,LOGIC$ PRINT #2,TRYNUMB,SLAMMER,ANSWER$(0) FOR I=1 TO TURNNUMBER IF INT(I/5)=I/5 THEN PRINT #2, PRINT #2,ANSWER$(I), NEXT I PRINT #2,INT((STRT-TIMER)/6),INT(1000*RND(0)) CLOSE #2 PRINT "This game is over, type BOARDWALK to play again." END SUB 'END OF PROGRAM