10 CLS: CURSOR 0: DELAY(100) 20 P=-100: Q=-100: W=0: F=640 30 GOSUB 4000 40 GOSUB 3000 50 X=RND(100,540): Y=RND(100,180) 60 A=3: B=-1 70 ' main loop 90 FOR I=1 TO 2 100 G=INT(AREAD(27)*8/57) 110 IF F!=G GOSUB 6000 180 S=INT(A/3): X=X+A: Y=Y+B: F=G 190 N=GET(X,Y+4*B) 200 L=GET(X+9*S,Y+4*B) 210 M=GET(X+10*S,Y) 220 IF L+M+N<45 GOSUB 1000 230 ELIPSE 15,P,Q,16,6,15 240 ELIPSE 10,X,Y,16,6,10 260 P=X: Q=Y: O=0 280 IF W<70 I=1 290 NEXT I 300 gosub 7000 310 end 1000 IF X>40 IF X<600 IF Y>20 IF Y<100 GOSUB 1060 1010 IF O=1 RETURN 1020 IF N<15 B=-B 1030 IF M<15 A=-A 1040 O=1 1045 GOSUB 4000 1050 RETURN 1060 IF L<15 GOSUB 2100 1070 IF N<15 R=X: T=Y+4*B: B=-B: GOSUB 5000 1080 IF M<15 R=X+10*S: T=Y: A=-A: GOSUB 5000 1090 O=1 1100 RETURN 2100 IF (15-M)+(15-N)>0 RETURN 2110 R=X+9*S: T=Y+4*B: GOSUB 5000 2200 A=-A: B=-B 2220 M=15: N=15 2230 X=X+RND(3,8)-5 2240 RETURN 3000 ' draw bricks 3010 FOR J=1 TO 5 3020 FOR I=1 TO 14 3030 K=INT((I+J)/15): C=I+J-K*15 3052 RECTANGLE C,C,I*38+20,J*10+20,I*38+48,J*10+26,1 3080 NEXT I 3090 NEXT J 3100 RETURN 4000 ' draw border 4010 LINE 8,10,10,630,10,4 4020 LINE 8,10,8,10,192,6 4030 LINE 8,630,8,630,192,6 4040 LINE 8,10,190,630,190,4 4050 GOSUB 6000 4050 RETURN 5000 ' delete brick 5010 V=INT((R-20)/38) 5020 U=INT((T-20)/10) 5030 TONE 1000,10 5040 RECTANGLE 15,15,V*38+20,U*10+20,V*38+48,U*10+26,1 5050 W=W+1 5060 RETURN 6000 ' draw pad 6010 RECTANGLE 15,15,F+13,178,F+52,184,1 6020 RECTANGLE 11,11,G+13,178,G+52,184,1 6030 RETURN 7000 ' New match 7010 CURSOR 1: color 9,15: AT 10,10: PRINT "New match (y/n)"; 7020 input G 7030 if g>40 run 7040 return