5 RANDOMIZE
6 DIM V(20)
45  PRINT
50  PRINT "KNOW HOW TO PLAY THIS GAME ";
55  INPUT K$
60  IF K$[1,1]="Y" THEN 70
65  GOSUB 210
70 PRINT
75  W(1)=W(2)=W(3)=W(4)=Z(1)=Z(2)=Z(3)=Z(4)=0
80  F=X=Q=1
85  PRINT
90  PRINT "HOW MANY WUMPI ARE HIDING (1,2,3,OR 4)";
95  INPUT N
100 IF N<1 THEN 90
105 IF N>4 THEN 90
110 IF N#INT(N) THEN 90
115  GOSUB 265
120  GOSUB 325
125  PRINT
130  PRINT "YOU ARE NOW IN CAVE";X
135  GOSUB 365
140  IF W(1)+W(2)+W(3)+W(4)=0 THEN 860
145  GOSUB 585
150  PRINT "TUNNELS LEAD TO CAVES ";A(1);A(2);A(3);A(4)
155 IF F-11=1 THEN 800
160 IF F-5=1 THEN 170
165 GO TO 175
170 GOSUB 470
175  PRINT "WHERE TO NEXT";
180  INPUT X
185 FOR I9=1 TO 4
190 IF X = A(I9) THEN 200
195 NEXT I9
196 PRINT "BAD MOVE"
197 GOTO 175
200  F=F+1
205  GOTO 120
210  REM *** RULES ***
215  PRINT "SOMEWHERE IN A NETWORK OF 20 CAVERNS (NUMBERED: 1 THRU 20)"
220  PRINT "ARE 1,2,3, OR 4 FRIENDLY WUMPI HIDING.  THEIR NAMES ARE"
225  PRINT "ARNI, BARNI, CARRI, AND DOTTI.  YOU TRY TO FIND THEM."
230  PRINT "AFTER SIX MOVES, THOSE NOT FOUND MAY (OR MAY NOT) HIDE IN"
235  PRINT "AN ADJACENT CAVERN.  YOU HAVE SIX MORE MOVES TO FIND ALL"
240  PRINT "WUMPI OR YOU LOSE.  TO ASSIST YOU IN THE SEARCH YOU ARE"
245  PRINT "EQUIPTED WITH AN AUTOMATIC WUMPUS SENSOR AND IDENTIFIER."
250  PRINT "IT TELLS YOU HOW CLOSE YOU ARE TO A HIDING WUMPUS:"
255  PRINT "CLOSEBY=1 CAVE AWAY, NEAR=2 CAVES AWAY, FAR=3 CAVES AWAY."
260  RETURN
265  REM *** WUMPI GO HIDE ***
270  FOR I=1 TO 20
275  V(I)=I
280  NEXT I
285  FOR I=20 TO 21-N STEP -1
290  P=INT(I*RND(0))+1
295  IF P=Q THEN 290
300  W(21-I)=V(P)
305  V(P)=V(I)
310  Z(21-I)=W(21-I)
315  NEXT I
320  RETURN
325  REM *** CAVES CLOSEBY ***
330  IF X=1 THEN 350
335  FOR H=1 TO (X-1)*4
340  READ O
345  NEXT H
350  READ A(1),A(2),A(3),A(4)
355  RESTORE
360  RETURN
365  REM *** WUMPUS FOUND ***
370  FOR I=1 TO 4
375  IF X=W(I) THEN 395
380  NEXT I
385  RETURN
395  PRINT
400  PRINT "!!! YOU FOUND ";
405 ON I GOTO 410,425,440,455
410  PRINT "ARNI !!!"
415  PRINT
420  RETURN
425  PRINT "BARNI !!!"
430  PRINT
435  RETURN
440  PRINT "CARRI !!!"
445  PRINT
450  RETURN
455  PRINT "DOTTI !!!"
460  PRINT
465  RETURN
470  REM *** WUMPI HIDE AGAIN ***
475  PRINT
480  PRINT "THE WUMPI MAY BE HIDING IN ANOTHER CAVE NOW."
485  PRINT
490  FOR I=1 TO 4
495  IF W(I)=0 THEN 575
500  FOR H=1 TO (W(I)-1)*4
505  READ O
510  NEXT H
515  FOR J=1 TO 4
520  READ Y(J,I)
525  NEXT J
530  RESTORE
535  Y(5,I)=W(I)
540  P=INT(5*RND(0))+1
545  W(I)=Y(P,I)
550 ON I GOTO 570,565,560,555
555  IF W(I)=W(I-3) THEN 540
560  IF W(I)=W(I-2) THEN 540
565  IF W(I)=W(I-1) THEN 540
570  IF W(I)=X THEN 540
575  NEXT I
580  RETURN
585  REM *** SENSOR ***
590  FOR I=1 TO 4
595  IF W(I)=0 THEN 750
600 ON I GOTO 610,620,630,640
605 GO TO 645
610 GOSUB 760
615 GO TO 645
620 GOSUB 770
625 GO TO 645
630 GOSUB 780
635 GO TO 645
640 GOSUB 790
645  FOR J=1 TO 4
650  IF W(I)=A(J) THEN 745
655  NEXT J
660  FOR L=1 TO 4
665  FOR H=1 TO (A(L)-1)*4
670  READ O
675  NEXT H
680  FOR M=1 TO 4
685  READ B(M)
690  IF W(I)=B(M) THEN 725
695  NEXT M
700  RESTORE
705  NEXT L
710  PRINT "FAR"
715  GOTO 750
720  RETURN
725  RESTORE
730  PRINT "NEAR"
735  GOTO 750
740  RETURN
745  PRINT "CLOSEBY"
750  NEXT I
755  RETURN
760  PRINT "ARNI IS ";
765  RETURN
770  PRINT "BARNI IS ";
775  RETURN
780  PRINT "CARRI IS ";
785  RETURN
790  PRINT "DOTTI IS ";
795  RETURN
800  REM *** YOU LOSE ***
805  PRINT "THIS WAS YOUR 12TH CAVE SEARCHED, SO YOU LOSE."
810  PRINT
815  IF W(1)=0 THEN 825
820  PRINT "ARNI IS HIDING IN CAVE";W(1);"PREVIOUSLY IN";Z(1)
825  IF W(2)=0 THEN 835
830  PRINT "BARNI IS HIDING IN CAVE";W(2);"PREVIOUSLY IN";Z(2)
835  IF W(3)=0 THEN 845
840  PRINT "CARRI IS HIDING IN CAVE";W(3);"PREVIOUSLY IN";Z(3)
845  IF W(4)=0 THEN 855
850  PRINT "DOTTI IS HIDING IN CAVE";W(4);"PREVIOUSLY IN";Z(4)
855  GOTO 870
860  PRINT
865  PRINT "    YOU WIN!"
870  PRINT
875  PRINT "DO YOU WANT TO PLAY AGAIN ";
880  INPUT K$
885  IF K$[1,1]="Y" THEN 70
890  STOP
895  DATA 2,5,8,11,1,3,10,13,2,4,12,15,3,5,7,14
900  DATA 1,4,6,9,5,7,15,20,4,6,8,17,1,7,9,16
905  DATA 3,8,10,18,2,9,11,17,1,10,12,19,3,11,13,18
910  DATA 2,12,14,20,4,13,15,19,3,6,14,16,8,15,17,20
915  DATA 7,10,16,18,9,12,17,19,11,14,18,20,6,13,16,19
920  END