5 REM BREAKOUT GAME - BY DAN PINAL›10 DIM C(3),SCORE(3)›20 C(0)=-0.5:C(1)=-1:C(2)=1:C(3)=0.5:SCORE(0)=0:SCORE(1)=10:SCORE(2)=5:SCORE(3)=3›30 GRAPHICS 5:POKE 752,1›40 FOR L1=0 TO 3:COLOR L1›50 FOR L2=0 TO 2 STEP 2›60 PLOT 0,L2+L1*4:DRAWTO 79,L2+L1*4›70 PLOT 0,L2+L1*4+1:DRAWTO 79,L2+L1*4+1›80 NEXT L2:NEXT L1›90 BALL=5:BRICKS=96›100 P=38:BX=INT(80*RND(0)):BY=17:DX=C(INT(4*RND(0))):DY=1:TX=BX›110 COLOR 1:PLOT BX,BY:GOSUB 1100›120 D=0:S=STICK(0):IF S>8 AND S<12 THEN D=-1›130 IF S>4 AND S<8 THEN D=1›140 IF NOT STRIG(0) THEN D=D*3›150 P=P+D*((P+D)>0 AND P+D<76)›160 COLOR 0:PLOT PX,36:DRAWTO PX+3,36›170 COLOR 1:PX=P:PLOT PX,36:DRAWTO PX+3,36›180 IF STRIG(0)=0 AND STICK(0)=15 THEN 200›190 GOTO 120›200 D=0:S=STICK(0):IF S>8 AND S<12 THEN D=-1›210 IF S>4 AND S<8 THEN D=1›220 IF NOT STRIG(0) THEN D=D*3›230 P=P+D*((P+D)>0 AND P+D<76)›235 COLOR 0:PLOT TX,BY:PLOT PX,36:DRAWTO PX+3,36›240 COLOR 1:PX=P:PLOT PX,36:DRAWTO PX+3,36›250 BX=BX+DX:BY=BY+DY:TX=INT(BX):NX=INT(BX+DX*(BX+DX<80 AND BX+DX>=0)):NY=BY+DY*(BY+DY>=0)›260 LOCATE NX,NY,C:IF NOT C THEN 350›270 IF BY<35 THEN 300›280 C=NX-PX:DY=-1:DX=C(C):GOSUB 1000:GOTO 350›300 SCORE=SCORE+SCORE(C):BRICKS=BRICKS-1:GOSUB 1000›310 C=INT(NX/5)*5:COLOR 0:DY=-DY›320 IF NY/2<>INT(NY/2) THEN NY=NY-1›330 FOR L1=0 TO 1:PLOT C,NY+L1:DRAWTO C+4,NY+L1:NEXT L1›340 GOSUB 1100›350 IF BX<1 OR BX>78 THEN DX=-DX:GOSUB 1000›360 IF BY=0 THEN DY=1:GOSUB 1000›370 IF BY=39 THEN 400›380 COLOR 1:PLOT TX,BY›390 IF BRICKS THEN 200›395 ? " PERFECT":GOSUB 1300:GOTO 420›400 GOSUB 1200:BALL=BALL-1:IF BALL THEN 100›410 GOSUB 1100:? " GAME OVER"›420 IF PEEK(53279)=6 THEN RUN ›430 GOTO 420›1000 FOR L1=15 TO 0 STEP -1›1010 SOUND 0,30,10,L1›1020 NEXT L1:RETURN ›1100 ? ")BALLS: ";BALL;" SCORE: ";SCORE:RETURN ›1200 FOR L1=80 TO 255:SOUND 0,L1,10,L1/8:NEXT L1:RETURN ›1300 FOR L1=100 TO 10 STEP -5›1310 FOR L2=L1 TO 0 STEP -4›1320 SOUND 0,L2,10,6:NEXT L2:NEXT L1:SOUND 0,0,0,0:RETURN ›