#program breakout #autostart 1 PAPER 0: BORDER 0: CLS 2 OUT 9275,7: OUT 9531,2 3 GO SUB 9000 4 LET liv=3 10 LOAD "breakout.spr" BANK 10 20 SPRITE BANK 10 30 SPRITE PRINT 1 35 DIM r(16,4): LET l=1: LET c=1 36 FOR c=1 TO 4: FOR l=1 TO 16: LET r(l,c)=1: PRINT AT 2+c,(l-1)*2; INK 6; PAPER c;"ýý": NEXT l: NEXT c 37 PRINT #0; AT 0,0;"Balls : ";liv 40 LET x=84: LET bx=0: LET by=56: LET m=6: LET bv=3: LET bh=m 50 IF by > 204 THEN GO TO 500 60 IF by <= 56 AND by >= 8 THEN LET t= INT (bx/16): LET ty=1+ INT ((by)/16): IF r(t+1,ty)=1 THEN LET r(t+1,ty)=0: PRINT AT ty+2,t*2;" ": LET bv=-bv: BEEP .01,5 70 REM 80 REM 90 REM 100 LET bx=bx+bh: IF bx > 240 THEN BEEP .01,2: LET bh=-bh: LET bx=bx+bh 110 IF bx <= 0 THEN BEEP .01,2: LET bh=-bh: LET bx=bx+bh 120 LET by=by+bv: IF by >= 172 THEN IF (bx >= x AND bx <= x+32) THEN LET bv=-bv: LET bh=bh+ RND *2: BEEP .01,3 125 IF by < 0 THEN BEEP .01,3: LET bv=-bv 140 SPRITE 2,32+bx,32+by,6,1 150 IF INKEY$ ="8" AND x < 224 THEN LET x=x+m 160 IF INKEY$ ="5" AND x > 0 THEN LET x=x-m 300 SPRITE 0,32+x,212,0,1 310 SPRITE 1,48+x,212,1,1 400 GO TO 50 500 FOR n=12 TO -12 STEP -1: BEEP .001,n: BEEP .002,n: NEXT n 510 LET liv=liv-1: IF liv > 0 THEN GO TO 37 600 STOP 999 SAVE "break.bas" 9000 RESTORE 9030 9001 FOR a=0 TO 15 9005 READ v 9010 POKE USR "a"+a,v 9020 NEXT a 9030 DATA 255,128,128,128,128,128,128,255 9040 DATA 255,1,1,1,1,1,1,255 9050 RETURN