10  PRINT
20  PRINT "=== HUNT THE WUMPUS ===  ADAPTED FOR 8KW"
30  PRINT "ENTER RANDOM SEED NUMBER ";
31  INPUT Z
32  FOR Y=1 TO Z
33  LET X=RND(0)
34  NEXT Y
70  DIM S[20,3]
80  FOR J=1 TO 20
90  FOR K=1 TO 3
100  READ S[J,K]
110  NEXT K
120  NEXT J
130  DATA 2,5,8,1,3,10,2,4,12,3,5,14,1,4,6
140  DATA 5,7,15,6,8,17,1,7,9,8,10,18,2,9,11
150  DATA 10,12,19,3,11,13,12,14,20,4,13,15,6,14,16
160  DATA 15,17,20,7,16,18,9,17,19,11,18,20,13,16,19
170  DEF FNA(Z)=INT(20*RND(0))+1
180  DEF FNB(Z)=INT(3*RND(0))+1
190  DEF FNC(Z)=INT(4*RND(0))+1
200  REM-LOCATE L ARRAY ITEMS
210  REM-1-YOU,2-WUMPUS,3&4-PITS,5&6-BATS
220  DIM L[6]
230  DIM M[6]
240  FOR J=1 TO 6
250  LET L[J]=FNA(0)
260  LET M[J]=L[J]
270  NEXT J
280  REM-CHECK FOR CROSSOVERS (IE L(1)=L(2),ETC)
290  FOR J=1 TO 6
300  FOR K=J TO 6
310  IF J=K THEN 330
320  IF L[J]=L[K] THEN 240
330  NEXT K
340  NEXT J
350  REM-SET# ARROWS
360  LET A=5
365  LET L=L[1]
370  REM-RUN THE GAME
376  PRINT "HUNT THE WUMPUS"
377  PRINT
380  REM-HAZARD WARNINGS & LOCATION
390  GOSUB 2000
400  REM-MOVE OR SHOOT
410  GOSUB 2500
420  IF O=1 THEN 440
421  IF O=2 THEN 480
430  REM-SHOOT
440  GOSUB 3000
450  IF F=0 THEN 410
460  GOTO 500
470  REM-MOVE
480  GOSUB 4000
490  IF F=0 THEN 390
500  IF F>0 THEN 550
510  REM-LOSE
520  PRINT "HA HA HA - YOU LOSE!"
530  GOTO 560
540  REM-WIN
550  PRINT "HEE HEE HEE - THE WUMPUS'LL GETCHA NEXT TIME!!"
560  FOR J=1 TO 6
570  LET L[J]=M[J]
580  NEXT J
595  PRINT "SAME SET-UP (1 FOR YES) ";
600  INPUT Z
610  IF Z#1 THEN 240
620  GOTO 360
2000  REM-PRINT LOCATION & HAZARD WARNINGS
2010  PRINT
2020  FOR J=2 TO 6
2030  FOR K=1 TO 3
2040  IF S[L[1],K]#L[J] THEN 2110
2051  IF J=2 THEN 2060
2052  IF J=3 OR J=4 THEN 2080
2053  IF J=5 OR J=6 THEN 2100
2060  PRINT "I SMELL A WUMPUS!"
2070  GOTO 2110
2080  PRINT "I FEEL A DRAFT"
2090  GOTO 2110
2100  PRINT "BATS NEARBY!"
2110  NEXT K
2120  NEXT J
2130  PRINT "YOU ARE IN ROOM "L[1]
2140  PRINT "TUNNELS LEAD TO "S[L,1];S[L,2];S[L,3]
2150  PRINT
2160  RETURN
2500  REM-CHOOSE OPTION
2515  PRINT "SHOOT OR MOVE (1-2) ";
2520  INPUT Z
2530  IF Z#1 THEN 2560
2540  LET O=1
2550  RETURN
2560  IF Z#2 THEN 2510
2570  LET O=2
2580  RETURN
3000  REM-ARROW ROUTINE
3010  LET F=0
3020  REM-PATH OF ARROW
3030  DIM P[5]
3040  PRINT "NO. OF ROOMS(1-5) ";
3050  INPUT J9
3060  IF J9<1 OR J9>5 THEN 3040
3070  FOR K=1 TO J9
3080  PRINT "ROOM # ";
3090  INPUT P[K]
3100  NEXT K
3110  REM-SHOOT ARROW
3120  LET A=A-1
3130  LET L=L[1]
3140  FOR K=1 TO J9
3150  FOR K1=1 TO 3
3160  IF S[L,K1]=P[K] THEN 3295
3170  NEXT K1
3180  REM-NO TUNNEL FOR ARROW
3190  LET L=S[L,FNB(1)]
3200  GOTO 3300
3210  NEXT K
3220  PRINT "MISSED"
3230  REM-MOVE WUMPUS
3240  GOSUB 3370
3250  REM-AMMO CHECK
3260  IF A>0 THEN 3280
3270  LET F=-1
3280  RETURN
3290  REM-SEE IF ARROW IS AT L(1) OR L(2)
3295  LET L=P[K]
3300  IF L#L[2] THEN 3340
3310  PRINT "AHA! YOU GOT THE WUMPUS!"
3320  LET F=1
3330  RETURN
3340  IF L#L[1] THEN 3210
3350  PRINT "OUCH! ARROW GOT YOU!"
3360  GOTO 3270
3370  REM-MOVE WUMPUS ROUTINE
3380  LET K=FNC(0)
3390  IF K=4 THEN 3440
3400  LET L[2]=S[L[2],K]
3410  IF L[2]#L THEN 3440
3420  PRINT "TSK TSK TSK- WUMPUS GOT YOU!"
3430  LET F=-1
3440  RETURN
4000  REM- MOVE ROUTINE
4010  LET F=0
4020  PRINT "WHERE TO ";
4030  INPUT L
4040  IF L<1 OR L>20 THEN 4020
4050  FOR K=1 TO 3
4060  REM- CHECK IF LEGAL MOVE
4070  IF S[L[1],K]=L THEN 4130
4080  NEXT K
4090  IF L=L[1] THEN 4130
4100  PRINT "NOT POSSIBLE -";
4110  GOTO 4020
4120  REM-CHECK FOR HAZARDS
4130  LET L[1]=L
4140  REM-WUMPUS
4150  IF L#L[2] THEN 4220
4160  PRINT "... OOPS! BUMPED A WUMPUS!"
4170  REM-MOVE WUMPUS
4180  GOSUB 3380
4190  IF F=0 THEN 4220
4200  RETURN
4210  REM-PIT
4220  IF L#L[3] AND L#L[4] THEN 4270
4230  PRINT "YYYIIIIEEEE . . . FELL IN PIT"
4240  LET F=-1
4250  RETURN
4260  REM-BATS
4270  IF L#L[5] AND L#L[6] THEN 4310
4280  PRINT "ZAP--SUPER BAT SNATCH! ELSEWHEREVILLE FOR YOU!"
4290  LET L=FNA(1)
4300  GOTO 4130
4310  RETURN
5000  END
