10 REM SOKOBAN - MICRO-BEE 32K
20 REM 16 LEVEL EDITION - ONLY LEVELS 14 ROWS OR LESS
30 REM ALL 15-17 ROW LEVELS REMOVED
40 REM KEYBOARD + MICROBEE JOYSTICK DIRECTIONS
50 DIM A(799)
60 STRS(500)
65 B1$="  # . $ @ + * "
66 OUT 1,255:REM JOYSTICK PORT INPUT
70 L=1:GOTO 100
100 IF L>16 THEN GOTO 8500
110 GOSUB 10000
120 GOTO 2000
2000 GOSUB 3000
2010 A0$=KEY
2012 IF A0$="" THEN GOTO 2015 ELSE GOTO 2030
2015 I=IN(0)
2016 IF I<128 THEN LET I=I+128
2017 IF I=254 OR I=250 OR I=246 THEN LET D=1:GOSUB 7000:GOSUB 2200:GOTO 2010
2018 IF I=253 OR I=249 OR I=245 THEN LET D=2:GOSUB 7000:GOSUB 2200:GOTO 2010
2019 IF I=251 OR I=250 OR I=249 THEN LET D=3:GOSUB 7000:GOSUB 2200:GOTO 2010
2020 IF I=247 OR I=246 OR I=245 THEN LET D=4:GOSUB 7000:GOSUB 2200:GOTO 2010
2022 GOTO 2010
2030 IF A0$="Q" OR A0$="q" THEN GOTO 9000
2035 IF A0$="N" OR A0$="n" THEN LET L=L+1:GOTO 100
2040 IF A0$="R" OR A0$="r" THEN GOSUB 10000:GOSUB 3000:GOTO 2010
2050 IF A0$="U" OR A0$="u" THEN GOSUB 6000:GOSUB 3000:GOTO 2010
2060 IF A0$="8" OR A0$="K" OR A0$="k" THEN LET D=1:GOSUB 7000:GOTO 2010
2070 IF A0$="2" OR A0$="J" OR A0$="j" THEN LET D=2:GOSUB 7000:GOTO 2010
2080 IF A0$="4" OR A0$="H" OR A0$="h" THEN LET D=3:GOSUB 7000:GOTO 2010
2090 IF A0$="6" OR A0$="L" OR A0$="l" THEN LET D=4:GOSUB 7000:GOTO 2010
2100 GOTO 2010
2200 I=IN(0)
2210 IF I=255 THEN RETURN
2220 GOTO 2200
3000 CLS
3010 PRINT "LEVEL ";L;" MOVES ";M;" PUSHES ";S;" N=NEXT"
3020 FOR I=1 TO R
3022 FOR J=1 TO C
3024 K=(I-1)*40+J-1:T=A(K)
3026 PRINT B1$(;T*2+1,T*2+2);
3030 NEXT J
3040 PRINT
3050 NEXT I
3060 RETURN
3062 REM
3064 REM
3066 REM
3070 REM
3080 REM
3090 REM
3100 REM
3110 REM
6000 REM UNDO
6010 IF U=0 THEN 6040
6020 O=(X-1)*40+Y-1
6021 V=(P-1)*40+Q-1
6022 W=V
6023 IF F=3 OR F=6 THEN LET H=P+P-X:K=Q+Q-Y:W=(H-1)*40+K-1
6024 A(O)=E:A(V)=F:A(W)=G
6030 P=X:Q=Y:M=Z
6031 IF F=3 OR F=6 THEN LET S=S-1
6035 IF F=3 AND G=2 THEN LET B=B+1
6036 IF F=6 AND G=0 THEN LET B=B-1
6038 U=0
6040 RETURN
7000 REM MOVE - INTEGER VARIABLES ONLY
7010 H=P:K=Q
7020 IF D=1 THEN LET H=P-1
7030 IF D=2 THEN LET H=P+1
7040 IF D=3 THEN LET K=Q-1
7050 IF D=4 THEN LET K=Q+1
7060 V=(H-1)*40+K-1:T=A(V)
7070 IF T=1 THEN RETURN
7080 N=H:J=K
7090 IF D=1 THEN LET N=H-1
7100 IF D=2 THEN LET N=H+1
7110 IF D=3 THEN LET J=K-1
7120 IF D=4 THEN LET J=K+1
7130 W=(N-1)*40+J-1
7140 IF T=0 OR T=2 THEN GOTO 7200
7150 IF T=3 OR T=6 THEN GOTO 7170
7160 RETURN
7170 IF A(W)=0 OR A(W)=2 THEN GOTO 7200
7180 RETURN
7200 O=(P-1)*40+Q-1
7210 E=A(O):F=A(V):G=F
7215 IF F=0 OR F=2 THEN LET W=V
7216 IF F=3 OR F=6 THEN LET G=A(W)
7220 X=P:Y=Q:Z=M
7230 IF A(O)=5 THEN LET A(O)=2 ELSE LET A(O)=0
7240 IF F=3 THEN LET A(V)=4
7250 IF F=6 THEN LET A(V)=5
7260 IF F=0 THEN LET A(V)=4
7270 IF F=2 THEN LET A(V)=5
7275 IF F=3 AND G=2 THEN LET B=B-1
7276 IF F=6 AND G=0 THEN LET B=B+1
7280 IF F=3 OR F=6 THEN LET A(W)=3:S=S+1
7290 IF (F=3 OR F=6) AND G=2 THEN LET A(W)=6
7300 M=M+1:U=1:P=H:Q=K
7310 GOSUB 7400
7312 REM
7314 REM
7320 REM
7330 REM
7340 REM
7350 IF F=3 OR F=6 THEN GOSUB 8000
7360 RETURN
7400 REM PARTIAL UPDATE - CURS COLUMN,ROW
7410 T=A(O):CURS Y*2-1,X+1:PRINT B1$(;T*2+1,T*2+2);
7420 T=A(V):CURS K*2-1,H+1:PRINT B1$(;T*2+1,T*2+2);
7430 IF F=0 OR F=2 THEN GOTO 7460
7440 T=A(W):CURS J*2-1,N+1:PRINT B1$(;T*2+1,T*2+2);
7450 REM
7460 CURS 1,1:PRINT "LEVEL ";L+0;" MOVES ";M;" PUSHES ";S;" N=NEXT   ";
7470 RETURN
7600 IF T=0 THEN PRINT " ";
7610 IF T=1 THEN PRINT "#";
7620 IF T=2 THEN PRINT ".";
7630 IF T=3 THEN PRINT "$";
7640 IF T=4 THEN PRINT "@";
7650 IF T=5 THEN PRINT "+";
7660 IF T=6 THEN PRINT "*";
7670 RETURN
8000 IF B=0 THEN 8050
8010 RETURN
8020 REM
8030 REM
8040 REM
8050 CLS
8060 PRINT "SOLVED! LEVEL ";L+0
8070 PRINT "MOVES ";M;" PUSHES ";S
8080 PRINT "PRESS ANY KEY"
8090 A0$=KEY
8100 IF A0$="" THEN GOTO 8090
8110 L=L+1:GOTO 100
8500 CLS
8510 PRINT "END OF 16 LEVEL EDITION"
8520 PRINT "PRESS ANY KEY"
8530 A0$=KEY
8540 IF A0$="" THEN GOTO 8530
8550 GOTO 9000
9000 END
10000 ON L GOSUB 11000,11030,11060,11090,11120,11150,11180,11210,11240,11270,11300,11330,11360,11390,11420,11450
10010 RETURN
11000 RESTORE 11020:READ R,C,A1$
11001 READ A2$,A3$,A4$,A5$
11002 REM KEEP LEVEL CHUNKS SEPARATE
11003 B=0:FOR I=0 TO 799:A(I)=0:NEXT I
11004 FOR I=1 TO R
11005 FOR J=1 TO C
11006 K=(I-1)*C+J
11007 IF K<81 THEN LET T=ASC(A1$(;K,K))-48:GOTO 11017
11008 IF K<161 THEN LET T=ASC(A2$(;K-80,K-80))-48:GOTO 11017
11009 IF K<241 THEN LET T=ASC(A3$(;K-160,K-160))-48:GOTO 11017
11010 IF K<321 THEN LET T=ASC(A4$(;K-240,K-240))-48:GOTO 11017
11011 T=ASC(A5$(;K-320,K-320))-48:GOTO 11017
11012 NEXT J
11013 NEXT I
11014 M=0:S=0:U=0:D=0:RETURN
11017 A((I-1)*40+J-1)=T
11018 IF T=3 THEN LET B=B+1
11019 IF T=4 OR T=5 THEN LET P=I:Q=J:GOTO 11012 ELSE 11012
11020 DATA 11,19,"00001111100000000000000100010000000000000013001000000000000111003110000000000010"
11021 DATA "03030100000000011101011010001111111000101101111100221103003000000000022111111011"
11022 DATA "1014110022100001000001111111110000111111100000000"
11023 DATA ""
11024 DATA ""
11025 REM ORIGINAL LEVEL 1
11030 RESTORE 11050:READ R,C,A1$
11031 READ A2$,A3$,A4$,A5$
11032 REM KEEP LEVEL CHUNKS SEPARATE
11033 B=0:FOR I=0 TO 799:A(I)=0:NEXT I
11034 FOR I=1 TO R
11035 FOR J=1 TO C
11036 K=(I-1)*C+J
11037 IF K<81 THEN LET T=ASC(A1$(;K,K))-48:GOTO 11047
11038 IF K<161 THEN LET T=ASC(A2$(;K-80,K-80))-48:GOTO 11047
11039 IF K<241 THEN LET T=ASC(A3$(;K-160,K-160))-48:GOTO 11047
11040 IF K<321 THEN LET T=ASC(A4$(;K-240,K-240))-48:GOTO 11047
11041 T=ASC(A5$(;K-320,K-320))-48:GOTO 11047
11042 NEXT J
11043 NEXT I
11044 M=0:S=0:U=0:D=0:RETURN
11047 A((I-1)*40+J-1)=T
11048 IF T=3 THEN LET B=B+1
11049 IF T=4 OR T=5 THEN LET P=I:Q=J:GOTO 11042 ELSE 11042
11050 DATA 11,14,"00000000000000111111111111001220010000011112200103003001122001311110011220000401"
11051 DATA "10011220010100301111111101130301001030030303010010000100000100111111111111"
11052 DATA ""
11053 DATA ""
11054 DATA ""
11055 REM ORIGINAL LEVEL 2
11060 RESTORE 11080:READ R,C,A1$
11061 READ A2$,A3$,A4$,A5$
11062 REM KEEP LEVEL CHUNKS SEPARATE
11063 B=0:FOR I=0 TO 799:A(I)=0:NEXT I
11064 FOR I=1 TO R
11065 FOR J=1 TO C
11066 K=(I-1)*C+J
11067 IF K<81 THEN LET T=ASC(A1$(;K,K))-48:GOTO 11077
11068 IF K<161 THEN LET T=ASC(A2$(;K-80,K-80))-48:GOTO 11077
11069 IF K<241 THEN LET T=ASC(A3$(;K-160,K-160))-48:GOTO 11077
11070 IF K<321 THEN LET T=ASC(A4$(;K-240,K-240))-48:GOTO 11077
11071 T=ASC(A5$(;K-320,K-320))-48:GOTO 11077
11072 NEXT J
11073 NEXT I
11074 M=0:S=0:U=0:D=0:RETURN
11077 A((I-1)*40+J-1)=T
11078 IF T=3 THEN LET B=B+1
11079 IF T=4 OR T=5 THEN LET P=I:Q=J:GOTO 11072 ELSE 11072
11080 DATA 11,17,"00000000000000000000000001111111100000000010000041000000000103130110000000001030"
11081 DATA "03100000000001130301001111111110301011112222001103003001112220000300300011222200"
11082 DATA "111111111111111111000000000"
11083 DATA ""
11084 DATA ""
11085 REM ORIGINAL LEVEL 3
11090 RESTORE 11110:READ R,C,A1$
11091 READ A2$,A3$,A4$,A5$
11092 REM KEEP LEVEL CHUNKS SEPARATE
11093 B=0:FOR I=0 TO 799:A(I)=0:NEXT I
11094 FOR I=1 TO R
11095 FOR J=1 TO C
11096 K=(I-1)*C+J
11097 IF K<81 THEN LET T=ASC(A1$(;K,K))-48:GOTO 11107
11098 IF K<161 THEN LET T=ASC(A2$(;K-80,K-80))-48:GOTO 11107
11099 IF K<241 THEN LET T=ASC(A3$(;K-160,K-160))-48:GOTO 11107
11100 IF K<321 THEN LET T=ASC(A4$(;K-240,K-240))-48:GOTO 11107
11101 T=ASC(A5$(;K-320,K-320))-48:GOTO 11107
11102 NEXT J
11103 NEXT I
11104 M=0:S=0:U=0:D=0:RETURN
11107 A((I-1)*40+J-1)=T
11108 IF T=3 THEN LET B=B+1
11109 IF T=4 OR T=5 THEN LET P=I:Q=J:GOTO 11102 ELSE 11102
11110 DATA 14,17,"00000000000000000000000001111100000000000010001111100000000101311001000000001000"
11111 DATA "00301111111111011100011222200110300311112222000030330110122220011300304101111111"
11112 DATA "110030011000000000103030010000000001110110100000000000100001000000000001111110"
11113 DATA ""
11114 DATA ""
11115 REM ORIGINAL LEVEL 5
11120 RESTORE 11140:READ R,C,A1$
11121 READ A2$,A3$,A4$,A5$
11122 REM KEEP LEVEL CHUNKS SEPARATE
11123 B=0:FOR I=0 TO 799:A(I)=0:NEXT I
11124 FOR I=1 TO R
11125 FOR J=1 TO C
11126 K=(I-1)*C+J
11127 IF K<81 THEN LET T=ASC(A1$(;K,K))-48:GOTO 11137
11128 IF K<161 THEN LET T=ASC(A2$(;K-80,K-80))-48:GOTO 11137
11129 IF K<241 THEN LET T=ASC(A3$(;K-160,K-160))-48:GOTO 11137
11130 IF K<321 THEN LET T=ASC(A4$(;K-240,K-240))-48:GOTO 11137
11131 T=ASC(A5$(;K-320,K-320))-48:GOTO 11137
11132 NEXT J
11133 NEXT I
11134 M=0:S=0:U=0:D=0:RETURN
11137 A((I-1)*40+J-1)=T
11138 IF T=3 THEN LET B=B+1
11139 IF T=4 OR T=5 THEN LET P=I:Q=J:GOTO 11132 ELSE 11132
11140 DATA 12,12,"00000000000011111100111012200101141112200111000112200000330112200101030112211101"
11141 DATA "0301111103013001000100310301000103003001000100110001000111111111"
11142 DATA ""
11143 DATA ""
11144 DATA ""
11145 REM ORIGINAL LEVEL 6
11150 RESTORE 11170:READ R,C,A1$
11151 READ A2$,A3$,A4$,A5$
11152 REM KEEP LEVEL CHUNKS SEPARATE
11153 B=0:FOR I=0 TO 799:A(I)=0:NEXT I
11154 FOR I=1 TO R
11155 FOR J=1 TO C
11156 K=(I-1)*C+J
11157 IF K<81 THEN LET T=ASC(A1$(;K,K))-48:GOTO 11167
11158 IF K<161 THEN LET T=ASC(A2$(;K-80,K-80))-48:GOTO 11167
11159 IF K<241 THEN LET T=ASC(A3$(;K-160,K-160))-48:GOTO 11167
11160 IF K<321 THEN LET T=ASC(A4$(;K-240,K-240))-48:GOTO 11167
11161 T=ASC(A5$(;K-320,K-320))-48:GOTO 11167
11162 NEXT J
11163 NEXT I
11164 M=0:S=0:U=0:D=0:RETURN
11167 A((I-1)*40+J-1)=T
11168 IF T=3 THEN LET B=B+1
11169 IF T=4 OR T=5 THEN LET P=I:Q=J:GOTO 11162 ELSE 11162
11170 DATA 13,13,"00000000000000000000111110011111110001111010411033011000030000001100300111000111"
11171 DATA "10111113111103001110221010303030222101000011122210103301012221010011101111101111"
11172 DATA "000000000"
11173 DATA ""
11174 DATA ""
11175 REM ORIGINAL LEVEL 7
11180 RESTORE 11200:READ R,C,A1$
11181 READ A2$,A3$,A4$,A5$
11182 REM KEEP LEVEL CHUNKS SEPARATE
11183 B=0:FOR I=0 TO 799:A(I)=0:NEXT I
11184 FOR I=1 TO R
11185 FOR J=1 TO C
11186 K=(I-1)*C+J
11187 IF K<81 THEN LET T=ASC(A1$(;K,K))-48:GOTO 11197
11188 IF K<161 THEN LET T=ASC(A2$(;K-80,K-80))-48:GOTO 11197
11189 IF K<241 THEN LET T=ASC(A3$(;K-160,K-160))-48:GOTO 11197
11190 IF K<321 THEN LET T=ASC(A4$(;K-240,K-240))-48:GOTO 11197
11191 T=ASC(A5$(;K-320,K-320))-48:GOTO 11197
11192 NEXT J
11193 NEXT I
11194 M=0:S=0:U=0:D=0:RETURN
11197 A((I-1)*40+J-1)=T
11198 IF T=3 THEN LET B=B+1
11199 IF T=4 OR T=5 THEN LET P=I:Q=J:GOTO 11192 ELSE 11192
11200 DATA 14,17,"00000000000000000111111111111111101000000000000001010101111110000010101003030303"
11201 DATA "10010101000343000110111010030303111222110100030300112221101113330301122211000001"
11202 DATA "011011222111111000110112221000011111000001110000000010000010000000000111111100"
11203 DATA ""
11204 DATA ""
11205 REM ORIGINAL LEVEL 12
11210 RESTORE 11230:READ R,C,A1$
11211 READ A2$,A3$,A4$,A5$
11212 REM KEEP LEVEL CHUNKS SEPARATE
11213 B=0:FOR I=0 TO 799:A(I)=0:NEXT I
11214 FOR I=1 TO R
11215 FOR J=1 TO C
11216 K=(I-1)*C+J
11217 IF K<81 THEN LET T=ASC(A1$(;K,K))-48:GOTO 11227
11218 IF K<161 THEN LET T=ASC(A2$(;K-80,K-80))-48:GOTO 11227
11219 IF K<241 THEN LET T=ASC(A3$(;K-160,K-160))-48:GOTO 11227
11220 IF K<321 THEN LET T=ASC(A4$(;K-240,K-240))-48:GOTO 11227
11221 T=ASC(A5$(;K-320,K-320))-48:GOTO 11227
11222 NEXT J
11223 NEXT I
11224 M=0:S=0:U=0:D=0:RETURN
11227 A((I-1)*40+J-1)=T
11228 IF T=3 THEN LET B=B+1
11229 IF T=4 OR T=5 THEN LET P=I:Q=J:GOTO 11222 ELSE 11222
11230 DATA 14,19,"00000000000000000000001111111110000000001100011001111100011100000100100001111003"
11231 DATA "01301001002220110103143110101212011001013001000020201103000030101012120110001100"
11232 DATA "11303020201103010001001312120111030030003003222010130111111000011001010010000111"
11233 DATA "11111110111100000000000000"
11234 DATA ""
11235 REM ORIGINAL LEVEL 13
11240 RESTORE 11260:READ R,C,A1$
11241 READ A2$,A3$,A4$,A5$
11242 REM KEEP LEVEL CHUNKS SEPARATE
11243 B=0:FOR I=0 TO 799:A(I)=0:NEXT I
11244 FOR I=1 TO R
11245 FOR J=1 TO C
11246 K=(I-1)*C+J
11247 IF K<81 THEN LET T=ASC(A1$(;K,K))-48:GOTO 11257
11248 IF K<161 THEN LET T=ASC(A2$(;K-80,K-80))-48:GOTO 11257
11249 IF K<241 THEN LET T=ASC(A3$(;K-160,K-160))-48:GOTO 11257
11250 IF K<321 THEN LET T=ASC(A4$(;K-240,K-240))-48:GOTO 11257
11251 T=ASC(A5$(;K-320,K-320))-48:GOTO 11257
11252 NEXT J
11253 NEXT I
11254 M=0:S=0:U=0:D=0:RETURN
11257 A((I-1)*40+J-1)=T
11258 IF T=3 THEN LET B=B+1
11259 IF T=4 OR T=5 THEN LET P=I:Q=J:GOTO 11252 ELSE 11252
11260 DATA 14,19,"00000000000000000000000011111111111000000001002001000100000000101200004010000111"
11261 DATA "11011221011110011001022111000001111030122200030100301100002201100110110111113113"
11262 DATA "10301000101001101000013033010100100301010010311010010000000000000001001001111111"
11263 DATA "11110010011110000000001111"
11264 DATA ""
11265 REM ORIGINAL LEVEL 18
11270 RESTORE 11290:READ R,C,A1$
11271 READ A2$,A3$,A4$,A5$
11272 REM KEEP LEVEL CHUNKS SEPARATE
11273 B=0:FOR I=0 TO 799:A(I)=0:NEXT I
11274 FOR I=1 TO R
11275 FOR J=1 TO C
11276 K=(I-1)*C+J
11277 IF K<81 THEN LET T=ASC(A1$(;K,K))-48:GOTO 11287
11278 IF K<161 THEN LET T=ASC(A2$(;K-80,K-80))-48:GOTO 11287
11279 IF K<241 THEN LET T=ASC(A3$(;K-160,K-160))-48:GOTO 11287
11280 IF K<321 THEN LET T=ASC(A4$(;K-240,K-240))-48:GOTO 11287
11281 T=ASC(A5$(;K-320,K-320))-48:GOTO 11287
11282 NEXT J
11283 NEXT I
11284 M=0:S=0:U=0:D=0:RETURN
11287 A((I-1)*40+J-1)=T
11288 IF T=3 THEN LET B=B+1
11289 IF T=4 OR T=5 THEN LET P=I:Q=J:GOTO 11282 ELSE 11282
11290 DATA 13,15,"00000000000000001111111000000001001001111100011001001222111010031001222001010301"
11291 DATA "33022200101003100122202101000103111111111130000000303011100100330100010111111001"
11292 DATA "13341000000100000011000000111111110"
11293 DATA ""
11294 DATA ""
11295 REM ORIGINAL LEVEL 26
11300 RESTORE 11320:READ R,C,A1$
11301 READ A2$,A3$,A4$,A5$
11302 REM KEEP LEVEL CHUNKS SEPARATE
11303 B=0:FOR I=0 TO 799:A(I)=0:NEXT I
11304 FOR I=1 TO R
11305 FOR J=1 TO C
11306 K=(I-1)*C+J
11307 IF K<81 THEN LET T=ASC(A1$(;K,K))-48:GOTO 11317
11308 IF K<161 THEN LET T=ASC(A2$(;K-80,K-80))-48:GOTO 11317
11309 IF K<241 THEN LET T=ASC(A3$(;K-160,K-160))-48:GOTO 11317
11310 IF K<321 THEN LET T=ASC(A4$(;K-240,K-240))-48:GOTO 11317
11311 T=ASC(A5$(;K-320,K-320))-48:GOTO 11317
11312 NEXT J
11313 NEXT I
11314 M=0:S=0:U=0:D=0:RETURN
11317 A((I-1)*40+J-1)=T
11318 IF T=3 THEN LET B=B+1
11319 IF T=4 OR T=5 THEN LET P=I:Q=J:GOTO 11312 ELSE 11312
11320 DATA 14,19,"00000000000000000000111111111111111110012220001000010001111222220031101013011222"
11321 DATA "22210030010000112222221001001010011111111110300303001001000001311301131101100030"
11322 DATA "00010300001010011011101001130101030330000030030010103000031130111111011111110040"
11323 DATA "11000000000000111111000000"
11324 DATA ""
11325 REM ORIGINAL LEVEL 27
11330 RESTORE 11350:READ R,C,A1$
11331 READ A2$,A3$,A4$,A5$
11332 REM KEEP LEVEL CHUNKS SEPARATE
11333 B=0:FOR I=0 TO 799:A(I)=0:NEXT I
11334 FOR I=1 TO R
11335 FOR J=1 TO C
11336 K=(I-1)*C+J
11337 IF K<81 THEN LET T=ASC(A1$(;K,K))-48:GOTO 11347
11338 IF K<161 THEN LET T=ASC(A2$(;K-80,K-80))-48:GOTO 11347
11339 IF K<241 THEN LET T=ASC(A3$(;K-160,K-160))-48:GOTO 11347
11340 IF K<321 THEN LET T=ASC(A4$(;K-240,K-240))-48:GOTO 11347
11341 T=ASC(A5$(;K-320,K-320))-48:GOTO 11347
11342 NEXT J
11343 NEXT I
11344 M=0:S=0:U=0:D=0:RETURN
11347 A((I-1)*40+J-1)=T
11348 IF T=3 THEN LET B=B+1
11349 IF T=4 OR T=5 THEN LET P=I:Q=J:GOTO 11342 ELSE 11342
11350 DATA 14,19,"00000000000000000001111100000000000000100011000000000000010300111111111000001101"
11351 DATA "01000000011111111010003131400100011001000000301000301100111011111111101110011022"
11352 DATA "62222201011110110626226260101110311111111110113011003000300300003001100100010001"
11353 DATA "00010011111111111111111111"
11354 DATA ""
11355 REM ORIGINAL LEVEL 29
11360 RESTORE 11380:READ R,C,A1$
11361 READ A2$,A3$,A4$,A5$
11362 REM KEEP LEVEL CHUNKS SEPARATE
11363 B=0:FOR I=0 TO 799:A(I)=0:NEXT I
11364 FOR I=1 TO R
11365 FOR J=1 TO C
11366 K=(I-1)*C+J
11367 IF K<81 THEN LET T=ASC(A1$(;K,K))-48:GOTO 11377
11368 IF K<161 THEN LET T=ASC(A2$(;K-80,K-80))-48:GOTO 11377
11369 IF K<241 THEN LET T=ASC(A3$(;K-160,K-160))-48:GOTO 11377
11370 IF K<321 THEN LET T=ASC(A4$(;K-240,K-240))-48:GOTO 11377
11371 T=ASC(A5$(;K-320,K-320))-48:GOTO 11377
11372 NEXT J
11373 NEXT I
11374 M=0:S=0:U=0:D=0:RETURN
11377 A((I-1)*40+J-1)=T
11378 IF T=3 THEN LET B=B+1
11379 IF T=4 OR T=5 THEN LET P=I:Q=J:GOTO 11372 ELSE 11372
11380 DATA 12,11,"00000000000000000111101111111041010000030010100031103101131222101001032220010010"
11381 DATA "1202101101000101301013003000010100111111101111000000"
11382 DATA ""
11383 DATA ""
11384 DATA ""
11385 REM ORIGINAL LEVEL 38
11390 RESTORE 11410:READ R,C,A1$
11391 READ A2$,A3$,A4$,A5$
11392 REM KEEP LEVEL CHUNKS SEPARATE
11393 B=0:FOR I=0 TO 799:A(I)=0:NEXT I
11394 FOR I=1 TO R
11395 FOR J=1 TO C
11396 K=(I-1)*C+J
11397 IF K<81 THEN LET T=ASC(A1$(;K,K))-48:GOTO 11407
11398 IF K<161 THEN LET T=ASC(A2$(;K-80,K-80))-48:GOTO 11407
11399 IF K<241 THEN LET T=ASC(A3$(;K-160,K-160))-48:GOTO 11407
11400 IF K<321 THEN LET T=ASC(A4$(;K-240,K-240))-48:GOTO 11407
11401 T=ASC(A5$(;K-320,K-320))-48:GOTO 11407
11402 NEXT J
11403 NEXT I
11404 M=0:S=0:U=0:D=0:RETURN
11407 A((I-1)*40+J-1)=T
11408 IF T=3 THEN LET B=B+1
11409 IF T=4 OR T=5 THEN LET P=I:Q=J:GOTO 11402 ELSE 11402
11410 DATA 14,18,"00000000000000000000000111111110000000111100000011111100100001103030004100101101"
11411 DATA "13130303111110222222100330111000222222100100011010222222130030011013222222033103"
11412 DATA "01100011101113003011111003003003003010001003003003003010001111110001111110000000"
11413 DATA "011111000000"
11414 DATA ""
11415 REM ORIGINAL LEVEL 42
11420 RESTORE 11440:READ R,C,A1$
11421 READ A2$,A3$,A4$,A5$
11422 REM KEEP LEVEL CHUNKS SEPARATE
11423 B=0:FOR I=0 TO 799:A(I)=0:NEXT I
11424 FOR I=1 TO R
11425 FOR J=1 TO C
11426 K=(I-1)*C+J
11427 IF K<81 THEN LET T=ASC(A1$(;K,K))-48:GOTO 11437
11428 IF K<161 THEN LET T=ASC(A2$(;K-80,K-80))-48:GOTO 11437
11429 IF K<241 THEN LET T=ASC(A3$(;K-160,K-160))-48:GOTO 11437
11430 IF K<321 THEN LET T=ASC(A4$(;K-240,K-240))-48:GOTO 11437
11431 T=ASC(A5$(;K-320,K-320))-48:GOTO 11437
11432 NEXT J
11433 NEXT I
11434 M=0:S=0:U=0:D=0:RETURN
11437 A((I-1)*40+J-1)=T
11438 IF T=3 THEN LET B=B+1
11439 IF T=4 OR T=5 THEN LET P=I:Q=J:GOTO 11432 ELSE 11432
11440 DATA 12,19,"00000000000000000000000000011111110000000011111001001111000001000100030000100111"
11441 DATA "10133011011001011000000101001101111001110313003003001122200001011001000112221000"
11442 DATA "04010111011122210011100300300111111111011000100010000000000111111111"
11443 DATA ""
11444 DATA ""
11445 REM ORIGINAL LEVEL 43
11450 RESTORE 11470:READ R,C,A1$
11451 READ A2$,A3$,A4$,A5$
11452 REM KEEP LEVEL CHUNKS SEPARATE
11453 B=0:FOR I=0 TO 799:A(I)=0:NEXT I
11454 FOR I=1 TO R
11455 FOR J=1 TO C
11456 K=(I-1)*C+J
11457 IF K<81 THEN LET T=ASC(A1$(;K,K))-48:GOTO 11467
11458 IF K<161 THEN LET T=ASC(A2$(;K-80,K-80))-48:GOTO 11467
11459 IF K<241 THEN LET T=ASC(A3$(;K-160,K-160))-48:GOTO 11467
11460 IF K<321 THEN LET T=ASC(A4$(;K-240,K-240))-48:GOTO 11467
11461 T=ASC(A5$(;K-320,K-320))-48:GOTO 11467
11462 NEXT J
11463 NEXT I
11464 M=0:S=0:U=0:D=0:RETURN
11467 A((I-1)*40+J-1)=T
11468 IF T=3 THEN LET B=B+1
11469 IF T=4 OR T=5 THEN LET P=I:Q=J:GOTO 11462 ELSE 11462
11470 DATA 12,18,"00000000000000000000000000011110000001111111110011000011003000000301111110001101"
11471 DATA "10001122211013303033131122211010004000100022211003101113300022211030033003011222"
11472 DATA "21111300000001111111001001111111000000001111000000000000"
11473 DATA ""
11474 DATA ""
11475 REM ORIGINAL LEVEL 47
