10 PRINT TAB(26)"OBSTACLE" 20 PRINTTAB(20)"CREATIVE COMPUTING" 30 PRINTTAB(18)"MORRISTOWN, NEW JERSEY" 150 REM VARIABLES USAGE 160 REM ----------------------------------------- 170 REM A1 DECIMAL VALUE FOR THE CHARACTER'*' 180 REM A2 DECIMAL VALUE FOR THE CHARACTER ' ' 190 REM A3 DECIMAL VALUE FOR THE CHARACTER '!' 200 REM A4 DECIMAL VALUE FOR THE CHARACTER 'S' 210 REM A5 DECIMAL VALUE FOR THE CHARACTER 'F' 220 REM A6 DECIMAL VALUE FOR THE CHARACTER '-' 230 REM D DIRECTION 240 REM D1 TOTAL NO. OF TURNS TAKEN 250 REM I ROW MATRIX 260 REM J COLUMN MATRIX INDEX 270 REM K PLACE HOLDER FOR THE VARIABLE I 280 REM L PLACE HOLDER FOR THE VARIABLE J 290 REM M MATRIX VARIBLE 300 REM N$ INPUT TO YES-NO QUESTIONS 310 REM R1 RANDOM NUMBER GENERATOR VARIABLE 320 REM S SPEED 330 REM S1 TOTAL SPEED COUNTER 340 REM T 'TIME' RATIO (D1/S1)*1OO 350 REM 360 REM START PROGRAM 370 REM 380 REM 390 REM INSTRUCTIONS 400 REM 410 PRINT 420 PRINT 430 PRINT 440 PRINT 450 PRINT "DO YOU WANT INSTRUCTIONS";:INPUT N$ 460 IF N$<>"YES" THEN 610 470 PRINT"THE OBJECT OF THIS GAME IS TO MOVE YOUR CAR'*'" 480 PRINT" BEGINNING AT'S' AND NAVIGATE THROUGH THE OBSTACLES" 490 PRINT"'!'&'-' WALLS TO THE SPACE MARKED 'F', YOU MUST LAND" 500 PRINT"ON THE SPACE MARKED 'F' ON THE EXACT AMOUNT OF SPACES" 510 PRINT"THERE ARE NO DIAGONAL MOVES." 520 PRINT"THERE ARE NO RIGHT TO LEFT MOVES." 530 PRINT"DIRECTIONS NO.1 IS UP." 540 PRINT "DIRECTION NO.2 IS LEFT TO RIGHT" 550 PRINT"DIRECTION NO.3 IS DOWN." 560 PRINT 570 PRINT"SPEED IS THE NO. OF SPACES IN A GIVEN DIRECTION" 580 REM 590 REM INITIALATION 600 REM 610 DIM M(15,50) 620 A1=ASC("*") 630 A2=ASC("!") 640 A3=ASC(" ") 650 A4=ASC("S") 660 A5=ASC("F") 670 A6=ASC("-") 680 D1=0:S1=0 690 REM *** NOTE - COURSE SET UP ROUTINE 700 FOR I=1 TO 10 710 FOR J=1 TO 42 720 R1=INT(RND(1)*1.2) 730 IF R1=0 THEN 760 740 M(I,J)=A2 750 GOTO 770 760 M(I,J)=A3 770 NEXT J 780 NEXT I 790 M(2,2)=A4 800 M(10,40)=A3 810 M(10,41)=A5 820 M(2,3)=A3 830 M(3,2)=A3 840 FOR I=1 TO 10:M(I,1)=A2:M(I,42)=A2:NEXT I 850 FOR J=1 TO 42:M(1,J)=A6:M(11,J)=A6:NEXT J 860 REM 870 REM ** PRINTING ROUTINE ** 880 REM 890 K=I:L=J 900 PRINT 910 FOR I=1 TO 11 920 FOR J=1 TO 42 930 PRINT CHR$(M(I,J)); 940 NEXT J 950 PRINT 960 NEXT I 970 I=K:J=L 980 REM 88 NOTE- NEW COURSE OPTION** 990 IF D1>0 THEN 1080 1000 PRINT"OPTION :(A=CONTINUE,B=NEW COURSE,C=STOP)"; 1010 INPUT N$ 1020 IF N$="A" THEN 1080 1030 IF N$="B" THEN 670 1040 IF N$="C" THEN 1420 1050 PRINT"INVALID OPTION" 1060 GOTO 1000 1070 REM 1080 REM ** MAIN PROGRAM BODY ** 1090 REM 1100 PRINT"DIRECTION";:INPUT D:D=INT(ABS(D)) 1110 IF D<1 THEN 1100 1111 IF D>3 THEN 1100 1120 PRINT:PRINT"SPEED";:INPUT S:S=INT(ABS(S)) 1130 D1=D1+1:S1=S1+S:IF D1<>1 THEN 1160 1140 REM ** NOTE - CAR STARTS AT POSITION 2,2 1150 J=2:I=2 1160 IF D=1 THEN 1190 1170 IF D=2 THEN 1230 1180 IF D=3 THEN 1270 1190 M(I,J)=A3:REM ** WIPES OUT PREVIOUS CHARACTER ** 1200 FOR C=1 TO S:I=ABS(I-1):IF M(I,J)=A2 THEN 1340 1210 IF M(I,J)=A6 THEN 1340 1215 NEXT C 1220 M(I,J)=A1: GOTO 1310 1230 M(I,J)=A3 1240 FOR C=1 TO S:J=J+1:IF M(I,J)=A2THEN 1340 1250 IF M(I,J)=A6 THEN 1340 1255 NEXT C 1260 M(I,J)=A1: GOTO 1310 1270 M(I,J)=A3 1280 FOR C=1 TO S: I=I+1:IF M(I,J)=A2 THEN 1340 1290 IF M(I,J)=A6 THEN 1340 1295 NEXT C 1300 M(I,J)=A1 1310 REM ** NOTE - WINNING CHECK** 1320 IF M(10,41)<>A1 THEN 870 1330 GOTO 1360 1340 PRINT"ILLEGAL MOVE...... YOU LOSE!!":GOTO 1400 1350 REM 1360 REM ** END OF REN ROUTINE ** 1370 REM 1380 T=(D1/S1)*100 1390 PRINT "YOU WON!! AND YOUR TIME IS ";T 1400 PRINT:PRINT"DO YOU WISH TO PLAY AGAIN";:INPUT N$ 1410 IF N$="YES" THEN 670 1420 END