40 CLEAR:DIM CH$(5),CL(5),M(7,7),FL(6),KY(32) 50 KY(32)=0:KY(31)=5:KY(30)=1:KY(29)=7:KY(28)=3 60 CL(0)=$0:CL(1)=$4D:CL(2)=$46:CL(3)=$47:CL(4)=$42:CL(5)=$44 65 FL(1)=5:FL(2)=7:FL(3)=15:FL(4)=8:FL(5)=4:FL(6)=11 70 FOR I=0 TO 7:FOR J=0 TO 7:M(I,J)=0:NEXT:NEXT 80 GOSUB 2100:ST=1 90 CLS:FN=0:GOSUB 900 100 FOR I=0 TO 7:FOR J=0 TO 7 105 V=I:W=J:CH=M(I,J):GOSUB 640:NEXT:NEXT 110 X=1:Y=1 140 K=STICK(0) 141 IF K>27 AND K<32 THEN S=KY(K):GOTO 190 142 IF K=32 THEN S=0:GOTO 90 143 V=X:W=Y:CH=2:GOSUB 641 180 GOTO 140 190 DX=0:DY=0 200 REM IF S=0 THEN 870 210 IF S=3 AND M(X+1,Y)=1 THEN 140 211 IF S=3 THEN DX=1:DY=0:GOTO 300 220 IF S=5 AND M(X,Y+1)=1 THEN 140 221 IF S=5 THEN DY=1:DX=0:GOTO 300 230 IF S=7 AND M(X-1,Y)=1 THEN 140 231 IF S=7 THEN DX=-1:DY=0:GOTO 300 240 IF S=1 AND M(X,Y-1)=1 THEN 140 241 IF S=1 THEN DY=-1:DX=0:GOTO 300 300 P=M(X+DX,Y+DY) 310 IF P=0 THEN 800 320 IF P=4 OR P=5 THEN FN=FN+1:IF FN>=FL(ST) THEN 860 325 IF P=4 OR P=5 THEN M(X+DX,Y+DY)=1:GOTO 800 330 IF P=3 AND M(X+DX*2,Y+DY*2) = 0 THEN 340 335 DX=0:DY=0:GOTO 800 340 M(X+DX,Y+DY)=0:V=X:W=Y:CH=0:GOSUB 640:M(X+DX*2,Y+DY*2)=3 345 V=X+DX*2:W=Y+DY*2:CH=3:GOSUB 640:GOTO 800 350 GOTO 140 640 M(V,W)=CH 641 CP=CH*4:XX=INT(V*2/2)*2+0:YY=INT(W*2/2)*2+0:CD=CP+1 642 AD=$C100:AE=$C500 643 AD=AD+32*YY+XX:AE=AE+32*YY+XX 644 POKE AD,CD:POKE AE,CL(CH) 645 POKE AD+1,CP:POKE AE+1,CL(CH) 646 POKE AD+32,CP+3: POKE AE+32,CL(CH) 647 POKE AD+33,CP+2: POKE AE+33,CL(CH) 648 RETURN 800 IF (DX<>0) OR (DY<>0) THEN V=X:W=Y:CH=M(V,W):GOSUB 640 810 X=X+DX:Y=Y+DY:V=X:W=Y:CH=2:GOSUB 641 850 GOTO 140 860 REM 861 V=X:W=Y:CH=2:GOSUB 641 862 REM FOR I=1 TO 20:FOR J=1 TO 6:COLOR ,J:NEXT J,I 863 ST=ST+1:IF ST>6 THEN 890 864 GOTO 90 870 FOR I= 0 TO 50:NEXT 880 CLS:GOTO 90 890 CLS:FOR I=1 TO 20:FOR J=1 TO 6:COLOR J 895 LOCATE 15,10:PRINT "GAME END":NEXT:NEXT:END 900 ON ST GOTO 901,902,903,904,905,906 901 RESTORE 1000:GOTO 910 902 RESTORE 1080:GOTO 910 903 RESTORE 1160:GOTO 910 904 RESTORE 1240:GOTO 910 905 RESTORE 1320:GOTO 910 906 RESTORE 1400:GOTO 910 910 FOR J=0 TO 7:READ A$:FOR I = 0 TO 7 920 M(I,J)=VAL(MID$(A$,I+1,1)):NEXT:NEXT:RETURN 1000 DATA "11111111" 1010 DATA "10000001" 1020 DATA "11113111" 1030 DATA "10040551" 1040 DATA "14110131" 1050 DATA "10300501" 1060 DATA "10330301" 1070 DATA "11111111" 1080 DATA "11111111" 1090 DATA "10003001" 1100 DATA "14113411" 1110 DATA "13110111" 1120 DATA "10300051" 1130 DATA "10040111" 1140 DATA "15514011" 1150 DATA "11111111" 1160 DATA "11111111" 1170 DATA "11111111" 1180 DATA "13544311" 1190 DATA "10455401" 1200 DATA "10111451" 1210 DATA "10451541" 1220 DATA "10540011" 1230 DATA "11111111" 1240 DATA "11111111" 1250 DATA "10000111" 1260 DATA "14103511" 1270 DATA "14150111" 1280 DATA "10353111" 1290 DATA "10115051" 1300 DATA "15300001" 1310 DATA "11111111" 1320 DATA "11111111" 1330 DATA "10300531" 1340 DATA "10033031" 1350 DATA "13303301" 1360 DATA "10030041" 1370 DATA "13030301" 1380 DATA "10503041" 1390 DATA "11111111" 1400 DATA "11111111" 1410 DATA "10050001" 1420 DATA "10410131" 1430 DATA "14414001" 1440 DATA "14411101" 1450 DATA "13055031" 1460 DATA "10155001" 1470 DATA "11111111" 2100 REM CH$(7) 2130 RESTORE 5020 2140 FOR AD=$C000 TO $C0BF 2150 READ I$ 2160 POKE AD,VAL("$"+I$) 2170 NEXT 2220 RETURN 5000 REM ********* CHR 5010 REM FLOOR 5020 DATA 00,00,00,00,00,00,00,00 5030 DATA 00,00,00,00,00,00,00,00 5040 DATA 00,00,00,00,00,00,00,00 5050 DATA 00,00,00,00,00,00,00,00 5060 REM WALL 5070 DATA 33,33,33,00,CC,CC,CC,00 5080 DATA 33,33,33,00,CC,CC,CC,00 5090 DATA 33,33,33,00,CC,CC,CC,00 5100 DATA 33,33,33,00,CC,CC,CC,00 5110 REM ME 5120 REM FUWAFUWA 5130 DATA 00,E0,F0,F8,8C,74,FE,FE 5140 DATA 00,07,0F,1F,31,2E,7F,7F 5150 DATA FE,1E,3C,78,E0,80,80,C0 5155 DATA 7F,78,3C,1E,07,01,01,03 5210 REM BLOCK 5220 DATA 00,FC,0E,F6,1A,0A,0A,0A 5230 DATA 00,3F,70,6F,58,50,50,50 5240 DATA 0A,0A,0A,1A,F6,0E,FC,00 5250 DATA 50,50,50,58,6F,70,3F,00 5260 REM CHERRY 5270 DATA 00,00,00,00,00,00,80,40 5280 DATA 00,08,08,0C,0A,09,08,08 5290 DATA 3C,3E,7F,7F,7F,3E,1C,00 5300 DATA 08,1C,3E,7F,7F,7F,7E,3C 5310 REM GRAPE 5320 DATA 00,00,00,C0,E0,E0,C0,30 5330 DATA C0,80,C0,20,11,09,0E,0F 5340 DATA 78,78,30,C0,EC,FE,DE,0C 5350 DATA 0F,06,18,3C,3D,19,00,00