10 REM CAR.ECB 20 REM ..CAR...by RALPH HOPKINS Aug. 80 30 REM ..Rev. 3-4-81 R.E.H. 40 REM ..EXPERIMENTAL "Auto" graphics 100 PRINT "&K" 110 SET DS=0 120 DIM D$(1),P$(650) 130 DATA 0,1,0,0 140 READ D,P,X1,Y1 200 LET P$="++++++++++++++++++++++++++++++++++++++++" 210 LET P$=P$+"+///// /////+" 220 LET P$=P$+"+/// ///+" 230 LET P$=P$+"+/ /+" 240 LET P$=P$+"+ +" 250 LET P$=P$+"+ +" 260 LET P$=P$+"+ ++++////++ ///++ +" 270 LET P$=P$+"+ +////++// / /++/ +" 280 LET P$=P$+"+ /+////++/ ++// +" 290 LET P$=P$+"+ +" 300 LET P$=P$+"+ +" 310 LET P$=P$+"++++++++++++++++++++++++++++++++++++++++" 320 LET P$=P$+"++++++++++++++++++++++++++++++++++++++++" 400 LET C$="X234567890" 410 DATA 11,35 450 FOR X=1 TO 1 460 READ Y(X),X(X) 480 NEXT X 1000 FOR X=1 TO 480 STEP 40 1050 PRINT P$(X,X+39) 1080 NEXT X 2000 CURSOR 2,42: PRINT "### DIRECTIONS ###" 2020 CURSOR 4,42: PRINT " 7 8 9" 2030 CURSOR 5,42: PRINT " \ I /" 2040 CURSOR 6,42: PRINT " \ I /" 2050 CURSOR 7,42: PRINT " 4 <--- CAR ---> 6" 2060 CURSOR 8,42: PRINT " / I \" 2070 CURSOR 9,42: PRINT " / I \" 2080 CURSOR 10,42: PRINT " 1 2 3" 2090 GOTO 5000 2100 CURSOR 13,45: PRINT "#*#*#*#*#*#*#*#" 2110 CURSOR 14,45: PRINT "#*# B O O M #*#" 2120 CURSOR 15,45: PRINT "#*#*#*#*#*#*#*#"; 2140 RETURN 2150 CURSOR 13,45: PRINT " " 2160 CURSOR 14,45: PRINT " " 2170 CURSOR 15,45: PRINT " "; 2190 RETURN 2200 IF P$(Z,Z)="+" THEN GOSUB 2100 ELSE 2290 2210 LET X(P)=X(P)-(X1): REM ...BACK UP THE CAR 2220 LET Y(P)=Y(P)-(Y1) 2240 LET D=INT(RND(0)*8)+1 2250 LET Y1=INT(RND(0)*3)-1 2260 LET X1=INT(RND(0)*3)-1 2270 PAUSE 1 2280 GOSUB 2150 2290 RETURN 2300 CURSOR 13,45: PRINT " C A R "; 2310 CURSOR 14,45: PRINT " ## STALLED ##"; 2340 RETURN 2350 CURSOR 13,45: PRINT " "; 2360 CURSOR 14,45: PRINT " "; 2390 RETURN 5000 REM ....CHECK CAR LOCATION LIMITS 5010 LET X2=X(P) 5020 LET Y2=Y(P) 5030 IF I$<>"" THEN GOSUB 2350 5040 IF I$="" THEN 5300 5100 IF D=0 THEN LET S=S-1: GOTO 5300 5110 IF D=6 THEN LET Y1=0: LET X1=1: GOTO 5300 5120 IF D=9 THEN LET Y1=-1: LET X1=1: GOTO 5300 5130 IF D=8 THEN LET Y1=-1: LET X1=0: GOTO 5300 5140 IF D=7 THEN LET Y1=-1: LET X1=-1: GOTO 5300 5150 IF D=4 THEN LET Y1=0: LET X1=-1: GOTO 5300 5160 IF D=1 THEN LET Y1=1: LET X1=-1 5170 IF D=2 THEN LET Y1=1: LET X1=0 5180 IF D=3 THEN LET Y1=1: LET X1=1 5190 IF D=5 THEN LET Y1=0: LET X1=0 5300 LET Y2=Y(P): LET X2=X(P) 5310 LET Z=(Y2*40)-39+X2 5330 IF P$(Z,Z)="+" THEN GOSUB 2200 5340 LET D$=P$(Z,Z) 5350 IF X1=0 AND Y1=0 THEN GOSUB 2300 5400 LET X(P)=X(P)+(X1) 5410 LET Y(P)=Y(P)+(Y1) 5420 CURSOR Y2,X2: PRINT D$; 5430 CURSOR Y(P),X(P): PRINT C$(P,P); 5500 CURSOR 15,1 5510 SET DS=0: PRINT "### INPUT CAR DIRECTION ---=>"; 5515 IF D=1 OR D=5 THEN LET S=1 ELSE LET S=4 5520 INPUT ,(1,S)I$ 5525 SET DS=0 5530 IF I$="" THEN CURSOR 15,30: GOTO 5000 5540 LET C=ASC(I$): REM ...GET NUMBER DIRECTION 5550 IF C=83 THEN 9000: REM ....'S' KEY FOR 'STOP' 5560 IF C<48 OR C>57 THEN 5500 5570 LET D=C-48 5580 GOTO 5000 9000 END