Charming, bomb-drop variant. New rows advance from the bottom.
Content
Source Code
10 REM "breakout" game
20 CLS
40 RANDOMIZE
45 LET z=0: LET q$="Hi Score: "
50 BORDER 6
60 PRINT AT 6,6; INK 7; PAPER 1;" D E M O L I T I O N "
70 REM
80 PRINT AT 16,6;"Press ENTER to Start"
85 PRINT AT 21,4;"Use '6' key to Drop Ball"
90 INPUT LINE l$
95 CLS
100 LET c=0: LET k=8: LET a=0: LET s=0: LET p=1
190 GO TO 8000
200 REM
202 GO SUB 4000
210 FOR i=0 TO 31
211 IF SCREEN$ (1,i)="" THEN GO TO 3000
213 NEXT i
220 LET c=c+1: IF c=k THEN GO TO 1000
240 LET vv=INT (RND*2)
245 PRINT AT 0,0;q$;z
250 IF vv=0 THEN GO TO 300
260 GO TO 350
300 REM go right
310 PRINT AT 1,0;"*";
312 IF INKEY$="6" THEN GO TO 500
320 FOR i=1 TO 31
322 BEEP .01,16: PAUSE p
330 PRINT CHR$ 8;" ";" ";CHR$ 8;"*";
332 IF INKEY$="6" THEN GO TO 500
340 NEXT i
342 PRINT CHR$ 8;" ";
348 GO TO 200
350 REM go left
360 PRINT AT 1,31;"*";
362 IF INKEY$="6" THEN GO TO 500
370 FOR i=0 TO 30
372 BEEP .01,16: PAUSE p
380 PRINT CHR$ 8;" ";CHR$ 8;CHR$ 8;"*";
382 IF INKEY$="6" THEN GO TO 500
390 NEXT i
392 PRINT CHR$ 8;" ";
398 GO TO 200
500 REM drop
510 LET x=33-PEEK 23688-1
520 FOR i=2 TO 20
530 PRINT AT i-1,x;" ";
540 IF SCREEN$ (i,x)="" THEN GO TO 700
542 PRINT AT i,x;"*": BEEP .01,8
550 NEXT i
552 PRINT AT 20,x;" ";
560 GO TO 200
700 REM
710 PRINT AT i,x;" ": LET s=s+10: BEEP .02,16
711 IF s>z THEN LET z=s
712 LET i=i+1: IF i>21 THEN GO TO 720
714 IF SCREEN$ (i,x)="" THEN LET s=s+10
716 PRINT AT i,x;" ";
720 FOR j=1 TO 5
722 LET xm=x-j: IF xm<0 THEN LET xm=0
724 LET xp=x+j: IF xp>31 THEN LET xp=31
726 LET sm=(SCREEN$ (i-j,xm)="")
727 LET tm=(SCREEN$ (i-j-1,xm)="")
728 LET sp=(SCREEN$ (i-j,xp)="")
729 LET tp=(SCREEN$ (i-j-1,xp)="")
730 LET w=sm+sp+tm+tp
740 IF w=0 THEN GO TO 200
760 PRINT AT i-j,xm;" ";: PRINT AT i-j,xp;" ";
770 PRINT AT i-j-1,xm;" ";: PRINT AT i-j-1,xp;" ";
772 LET s=s+w*10: BEEP .05,4
775 IF s>z THEN LET z=s
780 NEXT j
1000 LET c=0: LET a=a+1: IF a>5 THEN GO TO 1020
1010 POKE 23692,255: PRINT AT 21,31;b$: PRINT AT 20,0;b$: GO TO 1100
1020 LET q=INT (RND*7)
1022 POKE 23692,255: PRINT AT 21,31;b$: PRINT INK q;AT 20,0;a$: IF a=10 THEN LET a=0
1100 LET k=k-1: IF k=2 THEN LET k=3
1110 GO TO 200
2100 LET a$="\g\g\g\g\g\g\g\g\g\g\g\g\g\g\g\g\g\g\g\g\g\g\g\g\g\g\g\g\g\g\g\g"
2110 LET b$=" "
2112 LET z$=" Press ENTER to Play Again! "
2120 FOR i=0 TO 15
2130 PRINT b$
2140 NEXT i
2150 FOR i=16 TO 20
2160 PRINT INK (i-16);a$
2170 NEXT i
2180 PRINT b$
2190 GO TO 200
3000 REM stop
3010 PRINT AT 21,0;z$
3024 PRINT AT 0,0;q$;s
3030 GO TO 90
4000 REM score
4020 LET s$=STR$ s: LET l=LEN s$
4030 FOR j=1 TO l
4040 LET f=CODE s$(j)
4050 FOR i=0 TO 7: LET e=PEEK (u+f*8+i): POKE (v+j-1+256*i),e: NEXT i
4060 NEXT j
4100 RETURN
8000 LET g0=BIN 00000000
8010 LET g1=BIN 01111110
8020 POKE USR "g"+0,g0
8030 FOR i=1 TO 6
8040 POKE USR "g"+i,g1
8050 NEXT i
8060 POKE USR "g"+7,g0
8080 LET u=PEEK (23607)*256+PEEK (23606)
8090 LET v=16*256+32*6+16384
8100 GO TO 2100