-
Notifications
You must be signed in to change notification settings - Fork 0
/
L11-4.BAS
21 lines (21 loc) · 1.33 KB
/
L11-4.BAS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
10 REM Blockbuster--playfield, bricks, paddle, and ball.
100 DEFINT A-Z:SCREEN 1,0:COLOR 0,1:KEY OFF:CLS
110 CIRCLE(3,3),2,3:PAINT STEP(0,0),3
120 DIM BALL(10):GET(0,0)-(5,5),BALL
130 LINE(0,0)-(319,199),2,BF:LINE(80,20)-(241,185),0,BF
140 FOR I=0 TO 7:FOR J=0 TO 3:LINE(82+20*I,48+J*12) -STEP(18,8),((I+J) MOD 2)+1,BF:NEXT J:NEXT I
160 PX=150:PXINC=0
170 REM *placekeeping line*
180 BX=80:BY=100:BXINC=4:BYINC=4:PUT(BX,BY),BALL
190 A$=INKEY$:IF A$="c" THEN PXINC=5 ELSE IF A$="z" THEN PXINC=-5 ELSE IF A$="x" THEN PXINC=0
200 OLDPX=PX:PX=PX+PXINC:IF PX<80 OR PX>221 THEN PX=OLDPX
210 LINE(OLDPX,181)-(OLDPX+20,181),0: LINE(PX,181)-(PX+20,181),3:OLDPX=PX
220 OLDBX=BX:BX=BX+BXINC:IF BX<80 OR BX>234 THEN BXINC=-BXINC:BX=BX+2*BXINC
230 OLDBY=BY:BY=BY+BYINC:IF BY<24 THEN BYINC=-BYINC: BY=BY+2*BYINC
240 IF BY>175 THEN IF BX<PX-5 OR BX>PX+20 THEN 280 ELSE BYINC=-BYINC:BY=BY+2*BYINC:BXINC=(BX-PX)\2-4
250 PUT(OLDBX,OLDBY),BALL:IF POINT(BX+2,BY+2)=0 THEN GOTO 260 ELSE PAINT(BX+2,BY+2),0:BYINC=-BYINC:BY=BY+2*BYINC
260 PUT(BX,BY),BALL
270 GOTO 190
280 REM *placekeeping line*
290 PUT(OLDBX,OLDBY),BALL:GOTO 170