-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathL11-5.BAS
25 lines (25 loc) · 1.59 KB
/
L11-5.BAS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
10 REM Blockbuster--finished version.
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
150 NBALLS=3:NBRKS=32
160 PX=150:PXINC=0
170 LOCATE 2,2:PRINT "Balls left ";NBALLS:IF NBALLS=0 THEN LOCATE 15,13:PRINT "YOU LOST!!!!!":GOTO 300
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:NBRKS=NBRKS-1:LOCATE 2,20:PRINT "Bricks left";NBRKS:IF NBRKS=0 THEN LOCATE 15,13:PRINT "YOU WON!!!!":GOTO 300
260 PUT(BX,BY),BALL
270 GOTO 190
280 NBALLS=NBALLS-1
290 PUT(OLDBX,OLDBY),BALL:GOTO 170
300 LOCATE 25,9:PRINT "PRESS ANY KEY TO CONTINUE";
310 A$=INKEY$:IF A$="" THEN 310 ELSE CLS
320 END