10 CLS:WIDTH20,8:MEMSET:DEFINTA-Z:OPTIONBASE0:DIMA(6,6),B(2,13)
20 INPUT"LEVEL";M:GOSUB560:GOSUB580
30 LOCATE0,0:PRINTCHR$(150)+STRING$(9,32);
40 LOCATE1,0:INPUTI:I=I+7
50 IFI<8ORI>13THENGOSUB550:GOTO30
60 IFB(0,I)=0THENGOSUB550:GOTO30
70 M=0:N=0:O=I:GOSUB640
80 F=0:IFL=7THEN110
90 IFL=0THENF=1:GOTO110
100 IFB(0,L)=1ANDB(0,14-L)>0THENGOSUB680
110 GOSUB580:GOSUB860
120 IFE=1THEN510
130 IFF=1THEN30ELSE140
140 GOSUB730
150 LOCATE0,0:PRINTCHR$(153)+"!"+STRING$(8,32);
160 FORI=1TO6
170 M=1:N=7:O=I:GOSUB710
180 IFB(1,I)=0THENGOSUB760:GOTO240
190 GOSUB640
200 IFL=7THEN430
210 IFL=0THEN350
220 IFB(1,L)=1ANDB(1,14-L)>0THENGOSUB680
230 GOTO350
240 NEXTI
250 GOSUB770:I=A(6,0)
260 LOCATE3,0:PRINTI;
270 M=0:N=7:O=I:GOSUB640
280 F=0:IFL=0THENGOTO310
290 IFL=7THENF=1:GOTO310
300 IFB(0,L)=1ANDB(0,14-L)>0THENGOSUB680
310 GOSUB580:GOSUB860
320 GOSUB550:A$=INPUT$(1)
330 IFE=1THEN510
340 IFF=1THEN140ELSE30
350 FORI0=8TO13
360 M=2:N=0:O=I0:GOSUB710
370 IFB(2,I0)=0THENA(I,I0-7)=0:GOTO420
380 GOSUB640
390 IFL MOD7=0THENGOTO410
400 IFB(2,L)=1ANDB(2,14-L)>0THENGOSUB680
410 A(I,I0-7)=B(2,7)-B(2,0)
420 NEXTI0:GOTO240
430 FORI0=1TO6
440 M=2:N=7:O=I0:GOSUB710
450 IFB(2,I0)=0THENA(I,I0)=0:GOTO500
460 GOSUB640
470 IFL MOD7=0THENGOTO490
480 IFB(2,L)=1ANDB(2,14-L)>0THENGOSUB680
490 A(I,I0)=B(2,7)-B(2,0)
500 NEXTI0:GOTO240
510 GOSUB900:GOSUB580
520 F0=SGN(B(0,0)-B(0,7)):F0=F0+2
530 ONF0 GOSUB940,550,930
540 LOCATES0,0:LOCATE0,0:END
550 SOUND1,1:SOUND11,1:SOUND21,1:RETURN
560 FORI=0TO13:B(0,I)=M:NEXTI
570 B(0,0)=0:B(0,7)=0:RETURN
580 LOCATES0,0:LOCATE0,1:FORI=6TO1STEP-1
590 PRINTUSING"###";B(0,I);:NEXTI
600 LOCATE0,2:PRINTUSING"###";B(0,7);
610 LOCATE15,2:PRINTUSING"###";B(0,0);
620 LOCATE0,3:FORI=8TO13
630 PRINTUSING"###";B(0,I);:NEXTI:RETURN
640 K=B(M,O):B(M,O)=0
650 FORJ=O+1TOO+K:L=J MOD14
660 B(M,L)=B(M,L)+1:NEXTJ
670 L=(O+K)MOD14:RETURN
680 B(M,N)=B(M,N)+B(M,L)+B(M,14-L)
690 B(M,L)=0:B(M,14-L)=0
700 RETURN
710 FORJ=0TO13:B(M,J)=B(M-1,J)
720 NEXTJ:RETURN
730 FORJ=1TO6:A(J,0)=J:NEXTJ
740 FORJ=1TO6:FORJ0=1TO6
750 A(J,J0)=0:NEXTJ0,J:RETURN
760 FORJ=1TO6:A(O,J)=-144:NEXTJ:RETURN
770 FORJ=1TO6:FORJ0=1TO5
780 IFABS(A(J,J0))>ABS(A(J,J0+1))THEN790ELSE800
790 SWAPA(J,J0),A(J,J0+1)
800 NEXTJ0,J
810 FORJ=1TO5
820 IFA(J,6)>A(J+1,6)THEN830ELSE840
830 SWAPA(J,6),A(J+1,6):SWAPA(J,0),A(J+1,0)
840 NEXTJ
850 RETURN
860 E0=0:FORJ=1TO6:E0=E0+B(0,J):NEXTJ
870 E1=0:FORJ=8TO13:E1=E1+B(0,J):NEXTJ
880 IFE0=0ORE1=0THENE=1
890 RETURN
900 FORJ=1TO6:B(0,7)=B(0,7)+B(0,J):B(0,J)=0:NEXTJ
910 FORJ=8TO13:B(0,0)=B(0,0)+B(0,J):B(0,J)=0:NEXTJ
920 RETURN
930 FORI=1TO3:FORJ=56TO51STEP-1:SOUNDJ,1:SOUND51,1:SOUND56,1:NEXTJ,I:RETURN
940 FORI=1TO2:FORJ=56TO1STEP-4:SOUNDJ,1:SOUNDJ+1,1:NEXTJ,I:RETURN
