10 CLS:WIDTH20,16:MEMSET&HB00:DEFINTA-Z::OPTIONBASE0:DIMA(14,12)
20 CLS:LOCATE6,1:PRINT"Box World":LOCATE1,2:PRINT"By Jeng-Long Jiang":GOSUB550
30 RESTORE600:FORI=&HA40 TO&HA6F:READJ$:J=VAL("&H"+J$):POKEI,J:NEXTI
40 CLS:INPUT"LEVEL  (1-13)";Z:IFZ<1ORZ>13THENGOSUB540:GOTO40
50 ONZ GOSUB180,190,200,210,220,230,240,250,260,270,280,290,300
60 CLS:FLAG=0:M2=M1:M3=M1:N2=N1:N3=N1:FORI=0TO12STEP4:LOCATE15,I:PRINTZ;:NEXTI
70 FORJ=1TO11:FORI=1TO13:A(I,J)=0:NEXTI,J:FORJ=1TON:FORI=1TOM:READA(I,J):NEXTI,J
80 FORJ=1TON:FORI=1TOM:LOCATEI,J:PRINTCHR$(225+A(I,J));:NEXTI,J:LOCATEM1,N1:PRINTCHR$(231);
90 A$=INPUT$(1):A=ASC(A$):IFA=32THENGOSUB570:GOTO50
100 IFA>27ANDA<32THEN110ELSEIFA>48ANDA<53THEN120ELSEGOSUB540:GOTO90
110 ONA-27GOSUB310,320,330,340:GOTO130
120 ONA-48GOSUB350,360,370,380:GOTO130
130 ONA(M1,N1)GOSUB390,400
140 ONA(M2,N2)GOSUB410,410,420,430,540:LOCATEM1,N1:PRINTCHR$(231);
150 IFFLAG=0THEN90ELSEIFZ<14THENGOSUB560:GOTO50
160 CLS:LOCATE3,1:PRINT"You Have Done";:LOCATE5,2:PRINT"A Good Job";:GOSUB580
170 CLS:END
180 RESTORE620:M=8:N=8:M1=5:N1=5:RETURN
190 RESTORE640:M=9:N=9:M1=2:N1=2:RETURN
200 RESTORE660:M=10:N=7:M1=3:N1=4:RETURN
210 RESTORE680:M=6:N=8:M1=2:N1=3:RETURN
220 RESTORE700:M=8:N=8:M1=3:N1=2:RETURN
230 RESTORE720:M=13:N=11:M1=12:N1=9:RETURN
240 RESTORE760:M=10:N=8:M1=9:N1=2:RETURN
250 RESTORE780:M=10:N=7:M1=9:N1=4:RETURN
260 RESTORE800:M=11:N=9:M1=9:N1=8:RETURN
270 RESTORE830:M=8:N=7:M1=2:N1=4:RETURN
280 RESTORE850:M=12:N=6:M1=9:N1=5:RETURN
290 RESTORE870:M=8:N=7:M1=6:N1=2:RETURN
300 RESTORE890:M=8:N=8:M1=4:N1=7:RETURN
310 M2=M1+1:M3=M1+2:N2=N1:N3=N1:RETURN
320 M2=M1-1:M3=M1-2:N2=N1:N3=N1:RETURN
330 N2=N1-1:N3=N1-2:M2=M1:M3=M1:RETURN
340 N2=N1+1:N3=N1+2:M2=M1:M3=M1:RETURN
350 LOCATES0,N1,0:RETURN
360 LOCATES0,N1-1,0:RETURN
370 LOCATES0,N1-2,0:RETURN
380 IFN1<3THENGOTO370ELSELOCATES0,N1-3,0:RETURN
390 LOCATEM1,N1:PRINTCHR$(226);:RETURN
400 LOCATEM1,N1:PRINTCHR$(227);:RETURN
410 LOCATEM2,N2:PRINTCHR$(231);:M1=M2:N1=N2:RETURN
420 ONA(M3,N3)GOSUB440,460,540,540,540:RETURN
430 ONA(M3,N3)GOSUB480,500,540,540,540:RETURN
440 A(M2,N2)=1:A(M3,N3)=3:LOCATEM2,N2:PRINTCHR$(231);
450 LOCATEM3,N3:PRINTCHR$(228);:M1=M2:N1=N2:RETURN
460 A(M2,N2)=1:A(M3,N3)=4:LOCATEM2,N2:PRINTCHR$(231);
470 LOCATEM3,N3:PRINTCHR$(229);:M1=M2:N1=N2:GOSUB520:RETURN
480 A(M2,N2)=2:A(M3,N3)=3:LOCATEM2,N2:PRINTCHR$(231);
490 LOCATEM3,N3:PRINTCHR$(228);:M1=M2:N1=N2:RETURN
500 A(M2,N2)=2:A(M3,N3)=4:LOCATEM2,N2:PRINTCHR$(231);
510 LOCATEM3,N3:PRINTCHR$(229);:M1=M2:N1=N2:GOSUB520:RETURN
520 FLAG=1:FORJ=1TON:FORI=1TOM:IFA(I,J)=3THENFLAG=0
530 NEXTI,J:IFFLAG=1THENZ=Z+1:RETURNELSERETURN
540 SOUND1,1:SOUND11,1:SOUND21,1:RETURN
550 K=1:FORI=1TO2:FORJ=1TO56::K=(K*J)MOD56+1:SOUNDK,1:NEXTJ,I:RETURN
560 FORI=1TO3:FORJ=56TO51STEP-1:SOUNDJ,1:SOUND51,1:SOUND56,1:NEXTJ,I:RETURN
570 FORI=1TO2:FORJ=56TO1STEP-4:SOUNDJ,1:SOUNDJ+1,1:NEXTJ,I:RETURN
580 FORK=1TO2:FORL=1TO4:FORI=1TO112STEP4:J=ABS(I-56):SOUNDJ+31,1:SOUNDJ,1:NEXTI,L
590 FORI=1TO112:J=I^2-56*(I^2\56):SOUNDJ,1:NEXTI,K:RETURN
600 DATA 00,56,25,2F,25,56,00,00,00,00,00,00,07,77,77,70,77,77,00,3E,5D,5D,5D,3E
610 DATA 00,7F,79,5D,4F,7F,00,7F,47,63,71,7F,F8,88,88,8F,88,88,00,46,68,1F,2B,48
620 DATA 0,0,5,5,5,0,0,0,0,0,5,2,5,0,0,0,0,0,5,1,5,5,5,5,5,5,5,3,1,3,2,5
630 DATA 5,2,1,3,1,5,5,5,5,5,5,5,3,5,0,0,0,0,0,5,2,5,0,0,0,0,0,5,5,5,0,0
640 DATA 5,5,5,5,5,0,0,0,0,5,1,1,1,5,0,0,0,0,5,1,3,3,5,0,5,5,5,5,1,3,1,5,0,5,2,5,5,5,5,1,5,5,5,2,5
650 DATA 0,5,5,1,1,1,1,2,5,0,5,1,1,1,5,1,1,5,0,5,1,1,1,5,5,5,5,0,5,5,5,5,5,0,0,0
660 DATA 0,5,5,5,5,5,5,5,0,0,0,5,1,1,1,1,1,5,5,5,5,5,3,5,5,5,1,1,1,5,5,1,1,1,3,1,1,3,1,5
670 DATA 5,1,2,2,5,1,3,1,5,5,5,5,2,2,5,1,1,1,5,0,0,5,5,5,5,5,5,5,5,0
680 DATA 0,5,5,5,5,0,5,5,1,1,5,0,5,1,3,1,5,0,5,5,3,1,5,5
690 DATA 5,5,1,3,1,5,5,2,3,1,1,5,5,2,2,4,2,5,5,5,5,5,5,5
700 DATA 0,5,5,5,5,0,0,0,0,5,1,1,5,5,5,0,0,5,1,3,1,1,5,0,5,5,5,1,5,1,5,5
710 DATA 5,2,5,1,5,1,1,5,5,2,3,1,1,5,1,5,5,2,1,1,1,3,1,5,5,5,5,5,5,5,5,5
720 DATA 0,0,0,5,5,5,5,5,5,5,0,0,0,5,5,5,5,1,1,1,1,1,5,0,0,0,5,1,1,1,2,5,5,5,1,5,0,0,0
730 DATA 5,1,5,1,5,1,1,1,1,5,5,0,0,5,1,5,1,3,1,3,5,2,1,5,0,0,5,1,5,1,1,4,1,1,5,1,5,0,0
740 DATA 5,1,2,5,3,1,3,1,5,1,5,0,0,5,5,1,1,1,1,5,1,5,1,5,5,5,0,5,1,5,5,5,2,1,1,1,1,1,5
750 DATA 0,5,1,1,1,1,1,5,5,1,1,1,5,0,5,5,5,5,5,5,5,5,5,5,5,5
760 DATA 0,0,0,5,5,5,5,5,5,5,0,0,5,5,1,1,5,1,1,5,0,0,5,1,1,1,5,1,1,5,0,0,5,3,1,3,1,3,1,5
770 DATA 0,0,5,1,3,5,5,1,1,5,5,5,5,1,3,1,5,1,5,5,5,2,2,2,2,2,1,1,5,0,5,5,5,5,5,5,5,5,5,0
780 DATA 0,0,0,5,5,5,5,5,5,0,0,5,5,5,1,1,1,1,5,0,5,5,2,1,3,5,5,1,5,5,5,2,2,3,1,3,1,1,1,5
790 DATA 5,2,2,1,3,1,3,1,5,5,5,5,5,5,5,5,1,1,5,0,0,0,0,0,0,5,5,5,5,0
800 DATA 0,5,5,5,5,5,5,5,5,5,0,0,5,1,1,5,5,1,1,1,5,0,0,5,1,1,1,3,1,1,1,5,0
810 DATA 0,5,3,1,5,5,5,1,3,5,0,0,5,1,5,2,2,2,5,1,5,0,5,5,1,5,2,2,2,5,1,5,5
820 DATA 5,1,3,1,1,3,1,1,3,1,5,5,1,1,1,1,1,5,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5
830 DATA 0,0,5,5,5,5,5,5,0,0,5,1,1,1,1,5,5,5,5,3,3,3,1,5,5,1,1,3,2,2,1,5
840 DATA 5,1,3,2,2,2,5,5,5,5,5,5,1,1,5,0,0,0,0,5,5,5,5,0
850 DATA 0,5,5,5,5,0,0,5,5,5,5,5,5,5,1,1,5,0,0,5,1,1,1,5,5,1,3,1,5,5,5,5,3,1,1,5
860 DATA 5,1,1,3,2,2,2,2,1,3,1,5,5,5,1,1,1,1,5,1,1,1,5,5,0,5,5,5,5,5,5,5,5,5,5,0
870 DATA 0,0,5,5,5,5,5,0,5,5,5,1,1,1,5,0,5,1,1,3,2,1,5,5,5,1,1,2,3,2,1,5
880 DATA 5,5,5,1,4,3,1,5,0,0,5,1,1,1,5,5,0,0,5,5,5,5,5,0
890 DATA 0,0,5,5,5,5,0,0,0,0,5,2,2,5,0,0,0,5,5,1,2,5,5,0,0,5,1,1,3,2,5,0
900 DATA 5,5,1,3,1,1,5,5,5,1,1,5,3,3,1,5,5,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5
