10 CLEAR:MEMSET:WIDTH20,8
20 DIMA(200),A1(100)
30 CLS
40 U=33
50 V=66
60 DATA 0,0,0,0,0,0,0,0,0,0
70 DATA 0,-99,-2,-17,-15,-15,-17,-2,-99,0
80 DATA 0,-2,-1,-5,-5,-5,-5,-1,-2,0
90 DATA 0,-17,-5,-12,-10,-10,-12,-5,-17,0
100 DATA 0,-15,-5,-10,1,2,-10,-5,-15,0
110 DATA 0,-15,-5,-10,2,1,-10,-5,-15,0
120 DATA 0,-17,-5,-12,-10,-10,-12,-5,-17,0
130 DATA 0,-2,-1,-5,-5,-5,-5,-1,-2,0
140 DATA 0,-99,-2,-17,-15,-15,-17,-2,-99,0
150 DATA 0,0,0,0,0,0,0,0,0,0
160 ROW=5
170 COL=5
180 RESTORE
190 FORI=0TO99
200 READA(I)
210 A1(I)=A(I)
220 NEXTI
230 INPUT"LEVEL";Z2:Z2=ABS((Z2-1)MOD5+1)
240 ONZ2 GOTO300,290,280,270,260
250 GOTO230
260 A(88)=2
270 A(81)=2
280 A(18)=2
290 A(11)=2
300 INPUT"WH/BL";Z:Z=ABS((Z-1)MOD4+1)
310 FORI=9TO12
320 J=11*(I\12)
330 A(91+I)=I-J
340 A(95+I)=J-I
350 NEXTI
360 IFZ>2THENGOSUB2130:Z=Z-2
370 GOSUB1650
380 GOSUB1370
390 IFZ=2THEN850
400 LOCATE17,0,0
410 PRINTCHR$(153)+CHR$(32);
420 C=0
430 D=0
440 FORF=U TOV
450 IFA(F)=0THENF=F+2
460 IFA(F)>0THEN590
470 B=0
480 FORK=100TO107
490 J=F
500 A=0
510 J=J+A(K)
520 IFA(J)<1THEN550
530 IFA(J)=1THENA=A-A(F):GOTO510
540 B=B+A
550 NEXTK
560 IFB=0THEN590
570 IFB>C THENC=B:A(108)=F:D=1
580 IFB=C THENA(108+D)=F:D=D+1
590 NEXTF
600 IFC>0THEN660
610 LOCATE17,0,0
620 PRINTCHR$(153)+CHR$(153);
630 IFQ=1THEN1500
640 S5=1
650 GOTO850
660 I=A(107+INT(D*RND(1)+1))
670 ROW=I\10
680 COL=I MOD10
690 A(I)=2
700 GOSUB1270
710 J=I
720 Q=0
730 FORK=100TO107
740 A=0
750 I=J
760 I=I+A(K)
770 IFA(I)<1THEN830
780 IFA(I)=2THEN810
790 A=A+1
800 GOTO760
810 I=J
820 IFA>0THENZ=Z:FORL=1TOA:I=I+A(K):A(I)=2:GOSUB1270:NEXTL
830 NEXTK
840 GOSUB1370
850 GOSUB1880
860 M=INT(M)
870 IFM=0THEN1240
880 IFM=1THENZ=Z:GOSUB1650:GOSUB1370:GOTO850
890 IFM=2THENS1=0:S2=64:GOTO1500
900 IFM=3THEN940
910 IFM=4THEN1580
920 IF(M<11)OR(M>88)OR(A(M)>0)THEN1200
930 S5=0
940 B=0
950 FORK=100TO107
960 J=M
970 A=0
980 J=J+A(K)
990 IFA(J)<1THEN1100
1000 IFA(J)=2THENA=A+1:GOTO980
1010 I=M
1020 IFA=0THEN1100
1030 IFA(I)<0THENA(I)=1:GOSUB1270
1040 FORZ1=1TOA
1050 I=I+A(K)
1060 A(I)=1
1070 B=B+1
1080 GOSUB1270
1090 NEXTZ1
1100 NEXTK
1110 IFB=0THEN1200
1120 W=M-11
1130 IFW<U THENU=W
1140 IFA(U)=0THENU=U+1:GOTO1140
1150 W=M+11
1160 IFW>V THENV=W
1170 IFA(V)=0THENV=V-1:GOTO1170
1180 GOSUB1370
1190 GOTO400
1200 LOCATE17,0,0
1210 PRINTCHR$(150)+CHR$(150);
1220 GOSUB1480
1230 GOTO850
1240 IFS5=1THEN1500
1250 Q=1
1260 GOTO400
1270 IFI<11ORI>88THEN1360
1280 R=I\10
1290 C=I MOD10
1300 C=(C-1)+8*((R-1)\4)
1310 R=(R-1)MOD4
1320 IFA(I)=2THENPIECE$=CHR$(143):GOTO1340ELSEPIECE$=CHR$(144)
1330 IFA(I)=1THENPIECE$=CHR$(144)ELSEGOTO1360
1340 LOCATEC,R
1350 PRINTPIECE$;
1360 RETURN
1370 S1=0
1380 S2=0
1390 FORI=11TO88:IFA(I)=1THENS1=S1+1
1400 IFA(I)=2THENS2=S2+1
1410 NEXTI
1420 LOCATE17,2
1430 PRINTRIGHT$(STR$(S1),2);
1440 LOCATE17,3
1450 PRINTRIGHT$(STR$(S2),2);
1460 IF(S1=0)OR(S2=0)OR(S1+S2=64)THEN1510
1470 RETURN
1480 SOUND20,1
1490 RETURN
1500 GOSUB1480
1510 LOCATE17,0
1520 IFS1>S2 THENPRINTSTRING$(3,150);:GOSUB2220
1530 IFS1<S2 THENPRINTSTRING$(3,153);:GOSUB2260
1540 IFS1=S2 THENPRINTCHR$(150)+CHR$(153)+CHR$(32);:GOSUB2220:GOSUB2260
1550 CLS
1560 INPUT"AGAIN";M
1570 IFM=1THENGOTO30ELSEEND
1580 FORI=11TO88
1590 IFA(I)=1THENA(I)=2:GOSUB1270:GOTO1610
1600 IFA(I)=2THENA(I)=1:GOSUB1270
1610 NEXTI
1620 GOSUB1370
1630 GOSUB1480
1640 GOTO850
1650 CLS
1660 NORTH$=CHR$(135)+STRING$(6,130)+CHR$(136)
1670 TEMP$=CHR$(132)+STRING$(6,128)+CHR$(131)
1680 SOUTH$=CHR$(137)+STRING$(6,129)+CHR$(138)
1690 LOCATE0,0,0
1700 PRINTNORTH$;
1710 FORJ=1TO3
1720 LOCATE0,J
1730 PRINTTEMP$;
1740 NEXTJ
1750 FORJ=0TO2
1760 LOCATE8,J
1770 PRINTTEMP$;
1780 NEXTJ
1790 LOCATE8,3,0
1800 PRINTSOUTH$;
1810 LOCATE19,2:PRINTCHR$(150);
1820 LOCATE19,3:PRINTCHR$(153);
1830 LOCATES0,0,0
1840 FORI=11TO88
1850 GOSUB1270
1860 NEXTI
1870 RETURN
1880 LOCATE17,0,0
1890 PRINTCHR$(150)+CHR$(32);
1900 SOUND20,1
1910 LOCATE17,1,0
1920 PRINTCHR$(COL+64);CHR$(ROW+48);
1930 CC=(COL-1)+8*((ROW-1)\4)
1940 RR=(ROW-1)MOD4
1950 LOCATECC,RR,1
1960 A$=INPUT$(1)
1970 IFA$=CHR$(13)THEN2110
1980 IFA$="\"THEN1580
1990 IFA$="/"THEN400
2000 KKEYIN=ABS(ASC(A$)-27)
2010 ONKKEYIN GOTO2030,2050,2070,2090
2020 GOTO1960
2030 COL=(COL)MOD8+1
2040 GOTO1910
2050 COL=(COL+6)MOD8+1
2060 GOTO1910
2070 ROW=(ROW+6)MOD8+1
2080 GOTO1910
2090 ROW=(ROW)MOD8+1
2100 GOTO1910
2110 M=10*ROW+COL
2120 RETURN
2130 CLS:U=11:V=88:ROW=1:COL=1
2140 FORY=1TO8
2150 INPUTRANK$(Y)
2160 NEXTY
2170 FORY=1TO8:FORX=1TO8
2180 FILE$=MID$(RANK$(Y),X,1)
2190 IFFILE$<>"0"THEN:A(10*Y+X)=VAL(FILE$):A1(10*Y+X)=VAL(FILE$)
2200 NEXTX,Y
2210 RETURN
2220 FORI=1TO3:FORJ=56TO51STEP-1
2230 SOUNDJ,1:SOUND51,1:SOUND56,1
2240 NEXTJ,I
2250 RETURN
2260 FORI=1TO2:FORJ=56TO1STEP-4
2270 SOUNDJ,1:SOUNDJ+1,1
2280 NEXTJ,I
2290 RETURN
