RANDOMIZE TIMER GAMEPAD 1 PAUSE OFF GLOBAL XCRANE,YCRANE,IHOOK,HOOKED,IWIN REPLAY: COPY $E000,$1000 TO $9000 IF CELL.C(21,0)=0 THEN CLS CALL NEWGAME CALL SHUFFLE CALL FLATTEN CELL 21,0,1 XCRANE=0 YCRANE=1 ELSE XCRANE=CELL.C(20,0) YCRANE=CELL.C(21,0) END IF CALL CRANE(0,0,0) IHOOK=0 HOOKED=0 IWIN=0 IPAL=0 DO IF RIGHT(0) THEN CALL CRANE(1,0,0) IF LEFT(0) THEN CALL CRANE(-1,0,0) IF DOWN(0) THEN CALL CRANE(0,1,0) IF UP(0) THEN CALL CRANE(0,-1,0) IF BUTTON(0,0) THEN CALL CRANE(0,0,1) IF BUTTON(0,1) THEN CALL CRANE(0,0,-1) IF IWIN=1 THEN TEXT 5,2,"HIT PAUSE" CELL 20,0,0 CELL 21,0,0 COPY $9000,$1000 TO $E000 WHILE IWIN=1 ADD IPAL,1,0 TO 7 BG TINT 0,0 TO 19,15 PAL IPAL IF PAUSE THEN GOTO REPLAY WAIT 15 WEND END IF WAIT VBL LOOP SUB CRANE(DX,DY,HH) ' 'CHANGE DIRECTION X=XCRANE Y=YCRANE XX=X+DX YY=Y+DY IF YY<1 THEN YY=1 IF YY>14-IHOOK THEN YY=14 IF XX<0 THEN XX=0 IF XX>19 THEN XX=19 CC=CELL.C(XX,YY+IHOOK) IF CC>0 AND CC<101 THEN XX=X YY=Y DY=0 END IF FOR X=0 TO XCRANE CELL X,0,0 NEXT X FOR Y=0 TO YCRANE CELL XCRANE,Y,0 NEXT Y IF IHOOK=1 THEN CELL XCRANE,YCRANE+1,0 XCRANE=XX YCRANE=YY FOR X=0 TO XCRANE CELL X,0,102 NEXT X FOR Y=0 TO YCRANE CELL XCRANE,Y,104 NEXT Y IF IHOOK=1 THEN CELL XCRANE,YCRANE+1,HOOKED ' 'CHANGE HOOK IF HH=-1 THEN IF IHOOK=1 THEN CC=CELL.C(XCRANE,YCRANE+1) IF CC>0 OR YCRANE=14 THEN IHOOK=0 CELL 20,0,XCRANE CELL 21,0,YCRANE COPY $9000,$1000 TO $E000 II=0 IWIN=1 FOR IY=11 TO 15 FOR IX=0 TO 19 INC II IF CELL.C(IX,IY)<>II THEN IWIN=0 NEXT IX NEXT IY END IF END IF ELSE IF HH=1 THEN CC=CELL.C(XX,YY+1) IF CC>0 THEN IHOOK=1 HOOKED=CC END IF END IF CELL XCRANE,0,103 CELL XCRANE,YCRANE,105+IHOOK PLAY 0,24,2 PLAY 1,29,2 PLAY 2,32,2 PLAY 3,37,2 WAIT 6 END SUB SUB SHUFFLE T=0 Y1=0 Y2=0 SHTOP=TIMER+500 WHILE TIMER0 AND C2=0 AND X1<>X2 AND Y1>=0 AND Y2>=0 AND Y1<16 AND Y2<16 THEN CELL X1,Y1,0 CELL X2,Y2,C1 END IF CALL CHECK(T) WEND PLAY 1,44,90 WAIT 90 END SUB SUB FLATTEN T=0 Y1=0 Y2=0 WHILE T<11 TOT=0 X1=RND(19) X2=RND(19) CALL GETY(X1,Y1,1) CALL GETY(X2,Y2,0) C1=CELL.C(X1,Y1) C2=CELL.C(X2,Y2) IF C1>0 AND C2=0 AND X1<>X2 AND Y1<11 AND Y2>10 AND Y1>=0 AND Y2>=0 AND Y1<16 AND Y2<16 THEN CELL X1,Y1,0 CELL X2,Y2,C1 END IF CALL CHECK(T) WEND PLAY 2,49,90 WAIT 90 END SUB SUB NEWGAME I=100 FOR Y=15 TO 0 STEP -1 FOR X=19 TO 0 STEP -1 IF I>0 THEN CELL X,Y,I DEC I NEXT X NEXT Y PLAY 0,41,90 WAIT 90 END SUB SUB CHECK(TODO) TOPY=15 TOT=0 TODO=0 FOR Y=0 TO 15 FOR X=0 TO 19 IF CELL.C(X,Y)>0 THEN INC TOT IF Y<11 THEN INC TODO IF Y