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