10 SCREEN 3,2,2:CLS 20 DIM M(8,8):SN=0:CD=&HED0D 25 GOTO 7000 30 FOR J=0 TO 8:FOR I=0 TO 8:CH(I,J)=0:NEXT:NEXT 35 REM 36 REM 40 REM 100 REM 200 CLS 210 FOR K=0 TO 10:CH=INT(RND(-TIME)*7)+1:I=INT(RND(-TIME)*7)+1 215 J=INT(RND(-TIME)*7)+1:M(I,J)=CH:V=I+1:W=J+1:GOSUB 5000:NEXT 400 X=4:Y=4:SF=0:CL=7:V=X:W=Y:GOSUB 3000 500 S1=STICK(0):IF(S1=0)THEN600 510 IF INKEY$="G" THEN LOCATE 2,8:PRINT"GIVE UP!!":GOTO 7000 540 IF(S1<>7)AND(S1<>1)AND(S1<>3)AND(S1<>5)THEN500 545 CL=0 550 IF(S1=1)AND(Y>1)THENV=X:W=Y:GOSUB3000:Y=Y-1:V=X:W=Y:CL=7:GOSUB3000 560 IF(S1=5)AND(Y<7)THENV=X:W=Y:GOSUB3000:Y=Y+1:V=X:W=Y:CL=7:GOSUB3000 570 IF(S1=3)AND(X<7)THENV=X:W=Y:GOSUB3000:X=X+1:V=X:W=Y:CL=7:GOSUB3000 580 IF(S1=7)AND(X>1)THENV=X:W=Y:GOSUB3000:X=X-1:V=X:W=Y:CL=7:GOSUB3000 600 S=0:S=STRIG(0):IF(S=0)THEN 500 700 REM 710 ON SF+1 GOTO 720,740 720 IF M(X,Y)=0 THEN 500 730 IF M(X,Y)<>0 THEN 1700 740 IF (X=X1)AND(Y=Y1) THEN 500 742 REM 750 SF=0:X2=X:Y2=Y:X3=M(X1,Y1):X4=M(X2,Y2) 752 IF M(X2,Y2)=0 THEN GOTO 770 754 IF M(X2,Y2)<>0 THEN GOTO 500 770 CL=0:V=X1:W=Y1:GOSUB 4000:M(X2,Y2)=M(X1,Y1):CL=150:M(X1,Y1)=0 775 CH=M(X2,Y2):V=X2+1:W=Y2+1:GOSUB5000:GOSUB1000:GOSUB1080 790 I=INT(RND(-TIME)*7)+1:J=INT(RND(-TIME)*7)+1:CH=INT(RND(-TIME)*7)+1: 794 IF (M(I,J)<>0) THEN 790 796 IF (M(I,J)=0) THEN 800 800 M(I,J)=CH:V=I+1:W=J+1:GOSUB 5000:BT=0 805 GOSUB1030:BT=0:GOSUB1090:GOSUB8000:GOTO500 1000 J=Y2:BT=0 1030 FOR I=1 TO 7 1035 REM 1040 IF(M(I+1,J)<>0)AND(M(I,J)<>0)AND(M(I,J)=M(I+1,J))THEN BT=BT+1 1045 REM IF(M(I+1,J)=0)OR(M(I,J)=0)OR(M(I,J)<>M(I+1,J))THEN BT=0 1050 IF BT> 5THEN SN=SN+1:GOSUB8000:W=J:GOSUB 1500 1070 NEXT 1075 RETURN 1080 I=X2:BT=0 1090 FOR J=1 TO 7 1091 REM 1093 IF(M(I,J+1)<>0)AND(M(I,J)<>0)AND(M(I,J)=M(I,J+1))THEN BT=BT+1 1094 REM IF(M(I,J+1)=0)OR(M(I,J)=0)OR(M(I,J)<>M(I,J+1))THEN BT=0 1095 IF BT>5 THEN SN=SN+1:GOSUB 8000:V=I:GOSUB1800 1096 NEXT 1097 RETURN 1500 FORV=(I-BT+1)TO(I+1):M(V,J)=0:CL=0:GOSUB4000:NEXT:BT=0:RETURN 1700 SF=1:X1=X:Y1=Y:V=X1:W=Y1:CL=7:GOSUB 2000:GOTO500 1800 FORW=(J-BT+1)TO(J+1):M(I,W)=0:CL=0:GOSUB 4000:NEXT W:BT=0:RETURN 2000 XX=V*32:YY=W*15-2:LINE(XX+33,YY+16)-(XX+63,YY+31),CL,B:RETURN 3000 XX=V*32:YY=W*15-2:LINE(XX+32,YY+16)-(XX+64,YY+32),CL,B:RETURN 4000 XX=V*32:YY=W*15-3:LINE(XX+32,YY+18)-(XX+64,YY+34),CL,BF:RETURN 5000 IF CH>45 THEN CH=CH-46:GOTO 5010 5001 IF CH>36 THEN CH=CH-37:GOTO 5010 5002 IF CH>27 THEN CH=CH-28:GOTO 5010 5004 IF CH>18 THEN CH=CH-19:GOTO 5010 5005 IF CH>9 THEN CH=CH-10 5010 POKECD,CH:AD=V*4+W*600:A=USR(AD):RETURN 7000 CLS:LOCATE 4,1:PRINT "JEWEL PUZZLE";: 7020 FOR CH=0 TO 8:V=CH+0:W=4:GOSUB5000:NEXT 7040 LOCATE 4,13:PRINT "[PUSH SPACE]": 7045 REM LOCATE 2,15:PRINT "PUSH [TRIGER] PLAY" 7060 IF STRIG(0) THEN :GOTO 30 7064 REM IF STRIG(1) THEN :GOTO 30 7070 GOTO 7060 8000 CH=0:W=11 8020 FOR V=1 TO SN 8030 GOSUB 5000 8040 NEXT 8050 IF SN>8 THEN GOTO 25 8060 RETURN