1 REM *** Written by Mark Ray, please read welcome.msg first *** 2 ON ERROR IF ERR=17 THEN CH."AUTO" ELSE REPORT:PRINT " at ";ERL:END 10 REPEAT 20 CLS:PRINT SPC(36);"BREAKOUT"''SPC(32);"Q - Up A - Down";'''SPC(26); 30 INPUT "Difficulty (1=Hard 5=Easy)";DIFF 40 X=RND(-TIME):DY=1:BY=4:CLS 50 FOR T=0TO7:FOR C=0TO15STEP15 60 PRINTTAB(40+C,T);STRING$(5,CHR$(219));STRING$(5,CHR$(175));STRING$(5,CHR$(221)); 70 NEXT:PRINT STRING$(5,CHR$(219));:NEXT 80 BS=3:REPEAT:DX=4:X=90:Y=1:PROCball(X,Y) 90 REPEAT:PRINTTAB(9,BY);STRING$(DIFF,CHR$(219)); 100PT=POINT(X+DX,Y+DY):DX=DX+2*DX*(PT=1) 110DY=-DY*(PT=0)+DY*(PT=-1)-DY*RND(6-DIFF)*(PT=1)/ABS(DY) 120PROCball(X,Y):IFPT=1ANDX>90 THEN VDU 31,FNcx,FNcy,32,32 130X=X+DX:Y=Y+DY:PROCball(X,Y):K$=INKEY$(0) 140IF K$<>"" THEN PRINTTAB(9,BY);STRING$(DIFF," "); 150BY=BY-(K$="A")+(K$="Q"):BY=BY-(BY<0)+(BY>7) 160UNTIL X<0 OR X>450 170BS=BS-1:UNTIL BS=0 OR X>450 180VDU30:IF X<450 THEN PRINT "Game Over." ELSE PRINT "Break Out!" 190PRINT '"Another Go(Y/N)?":K$=GET$:UNTIL K$="N" 200CHAIN"AUTO" 210DEFFNcx=X DIV6 220DEFFNcy=7-((Y+DY-1)DIV8) 230DEFPROCball(X,Y) 240MOVE X,Y-2:PLOT 98,2,4:ENDPROC