30 PRINT "IN THIS SIMULATION YOU'RE TRAPPED IN A CAGE WITH A HUNGRY GREEN MONSTER WHO HASA LIFE SPAN OF ONLY A FEW TURNS (YOU OR
40 PRINT "THE COMPUTER MAY SELECT THE NUMBER)": PRINT : PRINT "YOUR MOVEMENT AND THAT OF THE MONSTER TAKES PLACE ON A 5X5 GRID. SOMEWHERE ON
45 PRINT "EACH GRID THERE IS A PIT FILLED WITH QUICKSAND. IF ANYONE FALLS INTO IT THEY SINK---AND LOSE!": PRINT
48 PRINT "THE BARS OF THE CAGE ARE ELECTIFIED SO IF YOU TRY AND GO THROUGH THEM YOU WILL BE KILLED AND LOSE!": PRINT
50 PRINT "YOU MAY MOVE NORTH, EAST, SOUTH, OR WESTBY ENTERING N,E,S OR W. IF YOU ENTER ANYOTHER LETTER, YOU WILL STAY IN THE SAME PLACE.
60 GOSUB 10000
67 HOME
70 PRINT "THE MONSTER IS PROGRAMMED TO MOVE TOWARDS YOU (HE CAN MOVE DIAGONALLY TOO)
75 PRINT "YOU DECIDE THE GAMES DIFFICULTLY.": PRINT : PRINT "1. YOU'VE A STUPID MONSTER & VISBLE PIT.";
80 PRINT "2. YOU'VE A SMART MONSTER & VISIBLE PIT.";
82 PRINT "3. YOU'VE A STUPID MONSTER/INVISBLE PIT.";
84 PRINT "4. YOU'VE A SMART MONSTER/INVISBLE PIT."
86 PRINT : PRINT "WHICH LEVEL OF DIFFICULTY? (1-4) ";: GET CHOICE$: PRINT CHOICE$: GOSUB 10010:C = CH: IF FLAG GOTO 67
88 PRINT : PRINT "DO YOU WANT TO DETERMINE THE NUMBER OF TURNS? (Y/N) ";: GET I$: PRINT I$: IF I$ = "Y" OR I$ = "y" THEN INPUT "HOW MANY? ";N$:N = VAL(N$)
90 IF N < = 0 THEN N = INT(10 * RND(1)) +5
92 PRINT : PRINT "YOUR ONLY HOPE FOR SURVIVAL IS TO OUTWITTHE MONSTER FOR "N" TURNS OR LURE IT": PRINT "INTO THE PIT. GOOD LUCK!
95 GOSUB 10000
96 HOME
200 GR : REM DISPLAY GRID FOR CAGE
210 X = 4:Y = 2
220 COLOR= 15: REM WHITE
230 FOR I = 0 TO 35
240 HLIN X,X +30 AT Y +I
250 NEXT I
260 REM GROUT BETWEEN FLOOR TILES (YELLOW)
270 COLOR= 13
275 HLIN X,X +30 AT Y: HLIN X,X +30 AT Y +35
280 HLIN X,X +30 AT Y +7: HLIN X,X +30 AT Y +14: HLIN X,X +30 AT Y +21: HLIN X,X +30 AT Y +28
285 VLIN Y +1,Y +34 AT X +6: VLIN Y +1,Y +34 AT X +12: VLIN Y +1,Y +34 AT X +18: VLIN Y +1,Y +34 AT X +24
290 VLIN Y +1,Y +34 AT X: VLIN Y +1,Y +34 AT X +30
300 REM BARS AROUND CAGE
305 COLOR= 10: REM GREY
310 PLOT X -1,Y -1: PLOT X +3,Y -1: PLOT X +7,Y -1: PLOT X +11,Y -1: PLOT X +15,Y -1: PLOT X +19,Y -1: PLOT X +23,Y -1: PLOT X +27,Y -1: PLOT X +31,Y -1
320 PLOT X -1,Y +36: PLOT X +3,Y +36: PLOT X +7,Y +36: PLOT X +11,Y +36: PLOT X +15,Y +36: PLOT X +19,Y +36: PLOT X +23,Y +36: PLOT X +23,Y +36: PLOT X +27,Y +36: PLOT X +31,Y +36
330 PLOT X -1,Y +3: PLOT X -1,Y +7: PLOT X -1,Y +11: PLOT X -1,Y +15: PLOT X -1,Y +19: PLOT X -1,Y +23: PLOT X -1,Y +27: PLOT X -1,Y +31
340 PLOT X +31,Y +3: PLOT X +31,Y +7: PLOT X +31,Y +11: PLOT X +31,Y +15: PLOT X +31,Y +19: PLOT X +31,Y +23: PLOT X +31,Y +27: PLOT X +31,Y +31
341 COLOR= 15: PLOT X +11,Y +11
350 REM DETERMINE LOCATION OF PIT
355 X = 4:Y = 3
360 PZ = INT(23 * RND(1)) +1
370 IF PZ <1 THEN PZ = 1
380 IF PZ >23 THEN PZ = 23
389 IF PZ = 1 THEN PY = 1
390 IF PZ = 1 THEN PX = 7
391 IF PZ = 2 THEN PY = 1
392 IF PZ = 2 THEN PX = 13
393 IF PZ = 3 THEN PY = 1
394 IF PZ = 3 THEN PX = 19
395 IF PZ = 4 THEN PY = 1
396 IF PZ = 4 THEN PX = 25
397 IF PZ = 5 THEN PY = 8
398 IF PZ = 5 THEN PX = 1
399 IF PZ = 6 THEN PY = 8
400 IF PZ = 6 THEN PX = 7
401 IF PZ = 7 THEN PY = 8
402 IF PZ = 7 THEN PX = 13
403 IF PZ = 8 THEN PY = 8
404 IF PZ = 8 THEN PX = 19
405 IF PZ = 9 THEN PY = 8
406 IF PZ = 9 THEN PX = 25
407 IF PZ = 10 THEN PY = 15
408 IF PZ = 10 THEN PX = 1
409 IF PZ = 11 THEN PY = 15
410 IF PZ = 11 THEN PX = 7
411 IF PZ = 12 THEN PY = 15
412 IF PZ = 12 THEN PX = 13
413 IF PZ = 13 THEN PY = 15
414 IF PZ = 13 THEN PX = 19
415 IF PZ = 14 THEN PY = 15
416 IF PZ = 14 THEN PX = 25
417 IF PZ = 15 THEN PY = 22
418 IF PZ = 15 THEN PX = 1
419 IF PZ = 16 THEN PY = 22
420 IF PZ = 16 THEN PX = 7
421 IF PZ = 17 THEN PY = 22
422 IF PZ = 17 THEN PX = 13
423 IF PZ = 18 THEN PY = 22
424 IF PZ = 18 THEN PX = 19
425 IF PZ = 19 THEN PY = 22
426 IF PZ = 19 THEN PX = 25
427 IF PZ = 20 THEN PY = 29
428 IF PZ = 20 THEN PX = 1
429 IF PZ = 21 THEN PY = 29
430 IF PZ = 21 THEN PX = 7
431 IF PZ = 22 THEN PY = 29
432 IF PZ = 22 THEN PX = 13
433 IF PZ = 23 THEN PY = 29
434 IF PZ = 23 THEN PX = 19
438 IF C = 3 THEN 455
439 IF C = 4 THEN 455
440 IF C <1 THEN C = 1: IF C >4 THEN C = 4
441 REM DRAW PIT
442 X = 4:Y = 2
443 XP = X +PX:YP = Y +PY
445 COLOR= 0: REM BLACK
450 FOR I = 0 TO 5: HLIN XP,XP +4 AT YP +I: NEXT I
455 X = 4:Y = 2: REM SET CONDITIONS
456 XP = X +PX:YP = Y +PY:MX = 1:MY = 1
457 HX = 25:HY = 29
458 XM = X +MX:YM = Y +MY
459 XH = X +HX:YH = Y +HY
460 REM PLACE MONSTER
470 GOSUB 2000
480 REM PLACE HUMAN
490 GOSUB 2500
500 REM BEGIN HUMAN MOVEMENT LOOP
505 FOR T = 1 TO N
509 PRINT "MOVE NUMBER ";T;" OUT OF ";N
510 PRINT "HUMAN'S TURN- WHICH DIRECTION (N,S,E,W, OR'X')? ";: GET H$: PRINT H$
515 GOSUB 2800
520 IF H$ = "N" THEN YH = YH -7: GOTO 570
530 IF H$ = "E" THEN XH = XH +6
540 IF H$ = "S" THEN YH = YH +7
550 IF H$ = "W" THEN XH = XH -6
570 GOSUB 2500: REM REPLOT HUMAN
572 IF XH = 0 OR YH = 0 OR XH >29 OR YH >31 THEN PRINT "YOU CAN'T GET OUT OF THE CAGE. YOU HAVE BEEN ELECTRICUTED!
573 IF XH = 0 OR YH = 0 OR XH >29 OR YH >31 THEN 980
574 IF XH = XM AND YH = YM THEN GOSUB 2100
575 IF XH = XM AND YH = YM THEN PRINT "YOU RAN RIGHT INTO HIS MOUTH! CHOMP"
576 IF XH = XM AND YH = YM THEN GOSUB 2100
577 IF XH = XM AND YH = YM THEN 980
580 IF XH = XP AND YH = YP THEN HOME : PRINT "YOU FELL IN THE QUICKSAND-- YOU LOSE!": FOR V1 = 1 TO 100: NEXT
583 IF XH = XP AND YH = YP THEN GOSUB 2900
585 IF XH = XP AND YH = YP THEN 980
600 REM MONSTER'S MOVE
610 GOSUB 2700: REM REMOVE MONSTER
620 IF C = 1 THEN 700
630 IF C = 3 THEN 700
640 IF XM = XH +6 AND YM = YH THEN XM = XH: GOTO 860
650 IF XM = XH -6 AND YM = YH THEN XM = XH: GOTO 860
660 IF YM = YH +7 AND XM = XH THEN YM = YH: GOTO 860
670 IF YM = YH -7 AND XM = XH THEN YM = YH: GOTO 860
700 REM DETERMINE MONSTER'S MOVE
710 IF XM = XH AND YM <YH THEN D = 1
720 IF XM >XH AND YM <YH THEN D = 2
730 IF XM >XH AND YM = YH THEN D = 3
740 IF XM >XH AND YM >YH THEN D = 4
750 IF XM = XH AND YM >YH THEN D = 5
760 IF XM <XH AND YM >YH THEN D = 6
770 IF XM <XH AND YM = YH THEN D = 7
780 IF XM <XH AND YM <YH THEN D = 8
790 D = D + INT(3 * RND(1) -1)
800 IF D = 0 THEN D = 8
810 IF D = 9 THEN D = 1
820 IF D >1 AND D <5 THEN XM = XM -6
830 IF D >5 THEN XM = XM +6
840 IF D >3 AND D <7 THEN YM = YM -7
850 IF D <3 OR D = 8 THEN YM = YM +7
860 IF XM <5 THEN XM = 5
870 IF XM >29 THEN XM = 29
880 IF YM <3 THEN YM = 3
890 IF YM >31 THEN YM = 31
900 GOSUB 2000: REM REPOSITON HUMAN
910 HOME
920 IF XM = XH AND YM = YH THEN GOSUB 2100
930 IF XM = XH AND YM = YH THEN PRINT "YOU'VE BEEN EATEN!"
940 IF XM = XH AND YM = YH THEN 980
949 HOME
950 IF XM = XP AND YM = YP THEN GOSUB 2900
952 HOME : IF XM = XP AND YM = YP THEN PRINT "THE MONSTER FELL IN QUICKSAND!": FOR PAUSE = 1 TO 75: NEXT PAUSE
953 IF XM = XP AND YM = YP AND C = 3 THEN PRINT TAB( 3)"YOU WERE SAVED BY LUCK & QUICKSAND.": PRINT "NOTHING TO TAKE PRIDE IN.": GOTO 988
954 IF XM = XP AND YM = YP THEN 988
960 NEXT T
970 HOME : PRINT "YOU SURVIVED!!!!"
975 GOSUB 3500
979 HOME
980 PRINT "YOU LASTED ";T -1;" OUT OF ";N;" POSSIBLE TURNS.": GOSUB 10000
981 IF T -1 = N THEN PRINT TAB( 5)"A PERFECT SCORE!"
982 IF T = N -1 THEN PRINT "YOU ALMOST MADE IT!"
983 IF XM < >XP AND XM < >XH AND T -1 <N -3 THEN PRINT "YOU DIDN'T DO TOO WELL!"
984 IF XM = XH AND YM = YH THEN PRINT "YOU WOUND UP BEING EATEN!"
988 : REM FILER FOR MISSING LINE
990 PRINT : PRINT : PRINT "DO YOU WANT TO PLAY AGAIN? (Y/N) ";
992 GET I$: IF I$ = "Y" OR I$ = "y" THEN PRINT I$: TEXT : HOME :: GOTO 67
995 IF I$ < >"N" AND I$ < >"n" THEN 992
1000 PRINT "WELL, OK, WE'LL QUIT FOR NOW.": PRINT "DO LET'S PLAY AGAIN SOON.": TEXT : HOME : PRINT CHR$(4)"-STARTUP"
2000 REM MONSTER SUBROUTINE
2005 COLOR= 12: REM GREEN BODY
2010 FOR I = 0 TO 4: HLIN XM +1,XM +3 AT YM +I: NEXT I
2030 PLOT XM,YM +2: PLOT XM +4,YM +2
2040 PLOT XM +1,YM +5: PLOT XM +3,YM +5
2050 COLOR= 15: REM WHITE MOUTH
2060 PLOT XM +2,YM +1
2070 RETURN
2100 REM VICTORIOUS MONSTER SUBROUTINE
2110 COLOR= 12
2120 FOR I = 0 TO 1: HLIN XM +1,XM +3 AT YM +I: NEXT I
2130 FOR I = 2 TO 4: HLIN XM +1,XM +2 AT YM +I: NEXT I