10 REM THE GAME OF CHASE D. NIXON 11-10-79 20 WIDTH 255 30 DEFINT A-Z 31 IDM=160 35 DIM A(20,40),E(160),F(160) 40 SCORE =0 50 BSCORE=0 60 GON$=CHR$(27)+"G" 70 GOFF$=CHR$(27)+"g" 80 CLR$=CHR$(27)+"+"+CHR$(27)+"*" 90 P$=CHR$(27)+"=" 100 F$=CHR$(93) 110 T$=CHR$(96) 120 PL$=GON$+":"+GOFF$ 140 D=20 150 IF D<10 OR D>38 THEN 140 160 PRINT CLR$; 170 XDIM=2*D: YDIM=D 180 IF YDIM>20 THEN YDIM=20 190 G1=.025*(XDIM*YDIM) 200 XF=.075*(XDIM*YDIM) 210 PDIM=81 220 PRINT "THIS IS THE GAME OF CHASE" 230 PRINT "YOU ARE '";GON$;":";GOFF$;"' IN A HIGH VOLTAGE MAZE WITH ";G1 240 PRINT "SECURITY MACHINES '+' TRYING TO DESTROY YOU" 250 PRINT "YOU MUST MANEUVER THE SECURITY MACHINES INTO" 260 PRINT "THE MAZE '";GON$;T$;GOFF$;"' TO SURVIVE. NOTE: THIS" 270 PRINT "GAME IS ADAPTIVE IT MAKES ITS SELF HARDER IF" 280 PRINT "YOU WIN AND EASER IF YOU LOSE. GOOD LUCK !!!" 290 PRINT:PRINT 300 GOSUB 340 310 PRINT:PRINT:PRINT 320 INPUT "INPUT A CHARACTER THEN RETURN TO CONTINUE";XC$ 325 FOR I=1 TO VAL(XC$):A1=RND(1):NEXT 330 GOTO 420 340 PRINT DL$;"MOVES ARE 7,8,9"; 350 IF SCORE <> 0 THEN PRINT " SCORE ";SCORE ELSE PRINT 360 PRINT " 4,5,6"; 370 IF BSCORE<>0 THEN PRINT " BEST SCORE ";BSCORE ELSE PRINT 380 PRINT " 1,2,3 10 TO END THE GAME"; 390 RETURN 410 REM CLEAR SCREEN AND FILL BOARDERS 420 G=0 430 PRINT CLR$; 440 X=0:Y=YDIM+2:GOSUB 1310: GOSUB 1310: GOSUB 340 444 X=XDIM/2-7:Y=YDIM+1:GOSUB 1310 445 PRINT "** WAIT **"; 450 PRINT GON$; 'START GRAPHICS 460 Y=1 : FOR X=1 TO XDIM:A(Y,X)=4: GOSUB 1310:PRINT F$;: NEXT 470 X=XDIM: FOR Y=1 TO YDIM:A(Y,X)=4: GOSUB 1310: PRINT F$;: NEXT 480 Y=YDIM: FOR X=XDIM TO 1 STEP -1:A(Y,X)=4: GOSUB 1310:PRINT F$;: NEXT 490 X=1 : FOR Y=YDIM TO 1 STEP -1:A(Y,X)=4: GOSUB 1310: PRINT F$;: NEXT 500 PRINT GOFF$; 'END GRAPHICS 510 REM LOCATE EVERYBODY 512 FOR I=2 TO YDIM-1:FOR J=2 TO XDIM-1:A(I,J)=0:NEXT J:NEXT I 520 FOR D=0 TO PDIM 530 Y=INT(RND(1)*(YDIM-2))+2 540 X=INT(RND(1)*(XDIM-2))+2 550 IF A(Y,X)<>0 THEN 530 560 IF D>G1 THEN A(Y,X)=1:GOSUB 1310: PRINT GON$;T$;GOFF$;: GOTO 590 570 IF D10 THEN X=0:Y=YDIM+2:GOSUB 1310 :GOSUB 340:GOTO 630 720 ON Y1+1 GOTO 630,750,750,750,760,800,760,730,730,730,1040 'Y MOVE 730 Y=Y-1 740 GOTO 760 750 Y=Y+1 760 ON Y1 GOTO 770,800,790,770,800,790,770,800,790 'X MOVE 770 X=X-1 780 GOTO 800 790 X=X+1 800 IF A(Y,X)=4 THEN 1080 ' FENCE ZAP 810 IF A(Y,X)=1 THEN 1060 ' TRANSFORMER ZAP 820 IF A(Y,X)=2 THEN 1100 ' DESTROYED 830 A(Y,X)=3: GOSUB 1310: PRINT PL$; 840 E(G1)=Y 'SAVE NEW PLAYERS POSITION 850 F(G1)=X 860 REM 870 FOR D=0 TO G1-1 'MOVE MACHINES 880 FD=F(D):ED=E(D) 890 IF A(ED,FD)<>2 THEN 1010 'SKIP IF NO MACHINE 900 A(ED,FD)=0:X=FD: Y=ED: GOSUB 1310: PRINT " "; 910 IF EDE(G1) THEN E(D)=ED-1 930 IF FDF(G1) THEN F(D)=FD-1 950 IF A(E(D),F(D))=3 THEN 1100 'MACHINE GOT YOU 960 IF A(E(D),F(D))=0 THEN 990 'PLACE MACHINE IN NEW POSITION 970 G=G+1 'ZAP MACHINE 980 GOTO 1000 990 A(E(D),F(D))=2:X=F(D):Y=E(D): GOSUB 1310:PRINT "+"; 1000 IF G=G1 THEN 1120 1010 NEXT D 1020 GOTO 630 1030 REM 1040 GOSUB 1260:PRINT "SORRY TO SEE YOU QUIT" 1050 GOTO 1130 1060 GOSUB 1250:PRINT "ZAP!!! YOU TOUCHED A HIGH VOLTAGE TRANSFORMER !! !" 1070 GOTO 1130 1080 GOSUB 1250:PRINT "ZAP!!! YOU TOUCHED THE FENCE !!!!!" 1090 GOTO 1130 1100 GOSUB 1250:PRINT "** YOU HAVE BEEN DESTROYED BY A CLEVER COMPUTER **" 1110 GOTO 1130 1120 GOSUB 1260:PRINT "WHAT SKILL **YOU DESTROYED ALL THE ENEMY**" 1130 IF Y=10 THEN 1160 1140 IF G=G1 THEN PDIM=PDIM*.8 ELSE PDIM=PDIM*1.2 'MAKE GAME HARDER OR EASER 1150 IF PDIM>IDM THEN PDIM=IDM 1160 SCORE=(G1/PDIM)*400 1170 IF SCORE > BSCORE THEN BSCORE=SCORE 1180 INPUT "WANT TO PLAY AGAIN ";C$ 1190 IF LEFT$(C$,1)="Y" THEN 420 1200 IF LEFT$(C$,1)<>"N" THEN 1180 1210 PRINT "HOPE YOU DON'T FEEL FENCED IN." 1220 PRINT "TRY AGAIN SOMETIME" 1230 END 1240 REM "MESSAGE" SUBROUTINE ENTRY POINT 1250 X=F(G1)-1:Y=E(G1):GOSUB 1310:PRINT "ZAP"; 1260 X=0:Y=YDIM+1 1270 GOSUB 1310 1280 PRINT CHR$(27);"J"; 1285 GOSUB 1310 1290 RETURN 1300 REM 1310 PRINT P$;CHR$(Y+31);CHR$(X+32); 1320 RETURN