10 SCREEN 1
20 A$ = "c2bm10,60e5r35f5d30g5l25d40g5l5h5u75bm24,64r20d22l20u22p2,2": RESTORE 8770
30 COLOR 0, 1
40 CLS : ON TIMER(60) GOSUB 9100: TIMER STOP
50 ST$ = STRING$(11, 205): sb = 22: zsm = 32
60 FOR I = 1 TO 1000
70 PSET (RND(1) * 320, RND(1) * 200)
75 IF I/25=INT(I/25) THEN DELAY 0.1
80 NEXT
90 R = 2
100 FOR I = 5 TO 85 STEP INT(R / 2)
110 CIRCLE (159, I), R, 3, , , .79
115 CIRCLE (161, I), R, 3, , , .79
120 CIRCLE (160, I), R, 1, , , .79
'120 IF I < 85 THEN PAINT (160, I), 1
130 IF I = 85 THEN 170
140 IF I / 4 = INT(I / 4) THEN CIRCLE (160, I - 20), R, , 6.3, 3.1, .78
145 CIRCLE (160, I+1), R, 1, , , .79
150 CIRCLE (160, I+2), R, 1, , , .79
155 CIRCLE (160, I+3), R, 1, , , .79
160 R = R + INT(I / 30)
165 DELAY 0.1
170 NEXT
175 VIEW
'180 DRAW "c2bm2,60e5r35f5d30g5l25d40g5l5h5u75bm16,64r20d22l20u22bm17,58p2,2"
'190 DRAW "c2bm49,60e5r30f5d75g5l30h5u75bm60,65r20d65l20u65bm57,57p2,2"
'200 DRAW "c2bm91,60e5r35f5d30g5l25d40g5l5h5u75bm105,64r20d22l20u22bm97,57p2,2bm94,135p2,2"
'210 DRAW "c2bm138,60e5r30f5d5l10h3l12g3d65f3r12e3r10d5g5l30h5u74bm145,57p2,2bm150,140p2,2"
'220 DRAW "c2bm180,60e5r30f5d75g5l30h5u75bm191,65r20d65l20u65bm185,57p2,2bm210,135p2,2"
'230 DRAW "c2bm222,55r35f5d30g5f5d41l10u40h2l18d42l10u85bm232,65r20d25l20u25bm225,57p2,2bm224,135p2,2"
'240 DRAW "c2bm264,55r12d25f20u45r12d85l12u25h20d45l12u85bm267,57p2,2"
180 DRAW "c2bm7,60e5r35f5d30g5l25d40g5l5h5u75bm21,64r20d22l20u22bm22,58p2,2"
190 DRAW "c2bm54,60e5r30f5d75g5l30h5u75bm65,65r20d65l20u65bm62,57p2,2"
200 DRAW "c2bm96,60e5r35f5d30g5l25d40g5l5h5u75bm110,64r20d22l20u22bm102,57p2,2bm99,135p2,2"
210 DRAW "c2bm143,60e5r30f5d5l10h3l12g3d65f3r12e3r10d5g5l30h5u74bm150,57p2,2bm155,140p2,2"
220 DRAW "c2bm185,60e5r30f5d75g5l30h5u75bm196,65r20d65l20u65bm190,57p2,2bm215,135p2,2"
230 DRAW "c2bm227,55r35f5d29g5f5d41l10u40h2l18d42l10u85bm237,65r20d25l20u25bm230,57p2,2bm229,135p2,2"
240 DRAW "c2bm269,55r12d25f20u45r12d85l12u25h20d45l12u85bm272,57p2,2"
244 FOR I = 9 TO 1 STEP -.5 : VIEW (75 + I * 10 + 1, 168 + I + 1)-(245 - I * 10 - 1, 192 - I - 1) : CLS : DELAY 0.1 : VIEW : NEXT'LINE (75 + I * 10, 168 + I)-(245 - I * 10, 192 - I), 1, B: PAINT (1, 1), 1
245 VIEW (75, 168)-(245, 192): CLS : VIEW': LINE (75, 170)-(245, 190), , B: LINE (77, 172)-(243, 188), , B
246 LOCATE 23, 13: PRINT "Markichev D,1993"
250 IF INKEY$ = "" THEN 250
260 SCREEN 0, 2, 0, 0
270 COLOR 10, 1
280 CLS
290 DIM A(25, 51), R$(10), IA$(20), OA(20), ZVY(10), ZVX(10), qm(10)
300 ZV = 2
310 GOTO 4070
320 SCREEN 0, 2, 1, 0
330 CLS
340 NX = 0
350 NH = 0
360 sp = 9
370 tl = 4: ON ERROR GOTO 9000
380 ON KEY(1) GOSUB 3370
390 ON KEY(12) GOSUB 1005
400 NY = 1
410 ON KEY(13) GOSUB 1085
420 SCREEN 0, 2, 2, 0
430 COLOR 20, 0
440 CLS
450 SCREEN 2
460 SCREEN 0, 2, 0, 2
470 X = 25
480 Y = 20
490 A$ = "      "
500 COLOR 4, 0
510 KEY(1) ON
520 XD = 21
530 CLS
540 N = 1
550 COLOR 1, 4
560 UR = 1
570 D$ = "cr"
580 FOR I = 1 TO 23
590 A(I, 1) = 5
600 A(I, 50) = 5
610 LOCATE I, 1
620 PRINT " "
630 LOCATE I, 50
640 PRINT " "
650 NEXT
660 DL = 6
670 K = 2
680 GOSUB 1860
690 FOR I = 1 TO 50
700 A(1, I) = 5
710 LOCATE 1, I
720 PRINT " "
730 NEXT
740 GOSUB 1570
750 GOSUB 790
760 GOTO 2890
770 REM GOSUB 2640
780 N = 0: GOTO 840
790 COLOR 0, 5: IF NX = 0 THEN N = 1
800 LOCATE 23, XD
810 R = 1
820 PRINT A$: IF PL = 3 AND Y = 22 THEN LOCATE 22, X: COLOR 10, 0: PRINT "o"
830 RETURN
840 I$ = INKEY$: IF sp = 10 THEN GOTO 892
850 FOR I = 1 TO 10-sp STEP 1
855 DELAY 0.1
860 COLOR 4, 3
870 LOCATE 1, 65
880 PRINT TIME$
890 NEXT
892 IF tpg > 0 THEN tpg = tpg + 1
893 IF tpg = 10 THEN tpg = 0
894 IF PL <> 5 THEN 900
895 ts = ts + 1: LOCATE 1, sb: COLOR 10, 4: PRINT CHR$(176); MID$(STR$(500 - ts), 1, 5); " "; CHR$(176); "   "
897 IF ts = 500 THEN ts = 0: zsm = 32: LOCATE 1, sb: COLOR 4, 4: PRINT "        ": LOCATE 23, 2: COLOR 10, 0: PRINT SPC(48); : PL = 0
900 COLOR 10, 0
910 KEY(12) ON
920 KEY(13) ON
930 IF R = 0 THEN 1190
940 IF I$ = "" THEN 1210 ELSE I = ASC(I$)
960 REM IF I$ = "s" OR I$ = "S" THEN GOSUB 2640
970 IF I = 27 THEN GOSUB 3400
980 IF I$ = " " AND PL = 1 AND tpg = 0 THEN tpg = 1: GOSUB 4460
990 IF I$ = " " AND PL = 3 AND Y = 22 THEN Y = 21: NY = 1: COLOR 10, 0: LOCATE 22, X: PRINT " "
1000 GOTO 1210
1005 IF vv = 2 AND N > 1 THEN N = N - 1: GOTO 1090
1007 IF vv = 1 THEN N = N + 1 ELSE N = 1
1010 GOSUB 1540
1020 K = 1: vv = 1
1030 COLOR 4, 0
1040 IF XD - N > 1 THEN 1050 ELSE N = XD - 2
1050 LOCATE 23, XD + DL - N
1060 PRINT STRING$(N, zsm)
1070 XD = XD - N: IF PL = 3 AND Y = 22 THEN X = X - N: LOCATE 22, X + N: COLOR 10, 0: PRINT " "
1080 GOTO 790
1085 IF vv = 1 AND N > 1 THEN N = N - 1: GOTO 1010
1087 IF vv = 2 THEN N = N + 1 ELSE N = 1
1090 GOSUB 1540
1100 LOCATE 23, XD
1110 K = 2: vv = 2
1120 COLOR 4, 0
1130 IF XD + DL + N < 51 THEN 1140 ELSE N = 50 - XD - DL
1140 PRINT STRING$(N, zsm)
1150 XD = XD + N
1160 IF PL = 3 AND Y = 22 THEN 1170 ELSE 790
1170 COLOR 10, 0: IF X + N < 50 THEN X = X + N: LOCATE 22, X - N: PRINT " ": GOTO 790
1175 LOCATE 22, X: PRINT " ": XD = XD - 1: X = 49: LOCATE 23, 49: PRINT CHR$(zsm)
1180 GOTO 790
1190 IF K = 2 THEN GOSUB 1090 ELSE GOSUB 1010
1200 GOTO 940
1210 GOSUB 1540
1220 R = 0: IF PL = 3 AND XD - 1 < X AND X < XD + DL + 1 AND Y = 22 THEN GOSUB 4190: GOTO 840 ELSE 1230
1230 IF X > 1 AND X < 50 AND Y > 1 THEN LOCATE Y, X
1240 COLOR 4, 0
1250 IF A(Y, X) = 0 THEN PRINT " "
1260 IF NY = 2 THEN y1 = Y + 1 ELSE y1 = Y - 1
1270 IF NX = 2 THEN X1 = X + 1
1280 IF NX = 0 THEN X1 = X
1290 IF NX = 1 THEN X1 = X - 1
1300 IF A(y1, X1) = 0 THEN 1430
1310 IF A(y1, X1) = 4 THEN ZVX(ZV) = X: ZVY(ZV) = y1: qm(ZV) = INT(RND(1) * 5) + 1
1320 IF A(y1, X1) = 2 OR A(y1, X1) = 3 OR A(y1, X1) = 4 THEN GOSUB 2010
1325 IF B = E THEN UR = UR + 1: GOTO 4000
1330 IF X1 < 50 AND X1 > 1 THEN 1340 ELSE 1380
1340 IF NY = 2 THEN NY = 1 ELSE NY = 2
1360 IF NX = 0 THEN NX = K
1370 GOTO 1400
1380 IF NX = 2 THEN NX = 1 ELSE NX = 2
1384 IF X1 = 50 AND A(y1, 49) = 5 THEN 1386
1385 IF A(y1, X1 + 1) = 5 THEN 1386 ELSE 1390
1386 IF NY = 1 THEN NY = 2 ELSE NY = 1
1390 IF y1 = 23 THEN 2960
1400 IF NY = 2 THEN Y = Y + 1 ELSE Y = Y - 1
1410 IF NX = 2 THEN X = X + 1 ELSE X = X - 1
1420 GOTO 1460
1430 IF y1 = 23 THEN 3070
1440 X = X1
1450 Y = y1
1460 COLOR 10, 0
1470 GOTO 1490
1480 GOSUB 2170
1490 IF X > 1 AND Y > 1 THEN LOCATE Y, X
1500 IF A(Y, X) = 0 THEN PRINT "o"
1510 GOSUB 4190
1520 COLOR 4, 0
1530 GOTO 840
1540 KEY(12) STOP
1550 KEY(13) STOP
1560 RETURN
1570 K = 0: I = 1
1595 I = I + 1
1600 FOR ii = 1 TO 45 STEP 4
1610 READ S: IF S = 7 THEN 1725
1620 IF S = 2 OR S = 3 OR S = 4 THEN E = E + 1
1630 IF S = 2 THEN COLOR 4, 1 ELSE COLOR 4, 7
1640 IF S = 4 THEN COLOR 0, 5: J$ = CHR$(178) ELSE J$ = " "
1650 IF S = 5 THEN COLOR 4, 4
1660 FOR I4 = 1 TO 4
1670 A(I, I4 + ii) = S
1680 LOCATE I, I4 + ii
1690 PRINT J$
1700 NEXT I4
1710 NEXT ii
1720 GOTO 1595
1725 COLOR 4, 0: FOR I1 = I TO I + 5: FOR i7 = 2 TO 49
1726 LOCATE I1, i7: PRINT " ": A(I1, i7) = 0
1727 NEXT i7: NEXT I1
1730 IF NH = 0 THEN GOSUB 4980
1740 COLOR 4, 3
1750 LOCATE 21, 61
1760 COLOR 4, 3
1770 IF B = 0 THEN PRINT "Points: 0  " ELSE PRINT "Points: "; B
1780 LOCATE 1, 59
1790 PRINT "Time: "; TIME$
1800 LOCATE 19, 61
1810 PRINT "F1 - Help"
1820 LOCATE 3, 61: COLOR 4, 3
1830 SI = LEN(STR$(UR)) - 1
1840 PRINT "Level: "; MID$(STR$(UR), 2, SI)
1850 IF NH = 0 THEN GOTO 3830 ELSE RETURN
1860 PR$(1) = "ESC - exit"
1870 REM PR$(2) = "S - speed"
1880 PR$(2) = CHR$(27) + " - left": PR$(3) = CHR$(26) + " - right"
1890 PR$(4) = "A - arrows"
1900 PR$(5) = "X - extend"
1910 PR$(6) = "S - stick"
1917 PR$(7) = "B - board": PR$(8) = "W - wall"
1920 RETURN
1930 DATA 2,3,2,3,2,3,2,3,2,3,2,3
1940 DATA 3,2,3,2,3,2,3,2,3,2,3,2
1950 DATA 2,5,2,5,2,5,5,3,5,3,5,3
1960 DATA 3,2,3,2,3,2,3,2,3,2,3,2
1970 DATA 2,3,2,3,2,3,2,3,2,3,2,3
1980 DATA 4,4,4,4,5,5,5,5,4,4,4,4
1990 DATA 2,3,2,3,2,3,2,3,2,3,2,3
2000 DATA 5,2,3,2,4,4,4,4,3,2,3,5,7
2010 SR = INT((X1 - 2) / 4) * 4 + 2
2020 IF SR < 2 THEN SR = 2
2030 RR = SR + 3
2040 IF RR > 49 THEN RR = 49
2050 IF A(y1, X1) = 2 OR A(y1, X1) = 3 OR A(y1, X1) = 4 THEN B = B + 1
2060 FOR I = SR TO RR
2070 A(y1, I) = 0
2080 LOCATE y1, I
2090 COLOR 4, 0
2100 PRINT " "
2110 NEXT
2120 LOCATE 21, 68
2130 COLOR 4, 3
2140 PRINT B
2160 RETURN
2170 tl = tl - 1
2180 GOSUB 4380: COLOR 20, 3: LOCATE 23, 68
2190 IF tl > 0 THEN PRINT "-"; tl - 1
2200 IF tl = 0 THEN 3080
2210 LOCATE 23, XD: COLOR 10, 0: N = 1
2220 PRINT STRING$(DL, " ")
2230 LOCATE 23, 50
2240 PRINT " ": tr = 1
2250 FOR I = 60 TO 22 STEP -1
2260 FOR G = 1 TO 100 STEP sp * 1.5 * tr
2270 COLOR 4, 3
2280 LOCATE 1, 65
2290 IF sp < 10 THEN PRINT TIME$: COLOR 10, 0
2300 I$ = INKEY$
2310 IF I$ = "" THEN 2330
2320 IF ASC(I$) = 27 THEN GOSUB 3400 ELSE tr = 100
2330 NEXT G
2340 LOCATE 23, I
2350 COLOR 10, 5
2360 PRINT "      "
2370 IF I > 54 THEN 2420
2380 LOCATE 23, I + 6
2390 IF I > 44 THEN COLOR 10, 3 ELSE COLOR 10, 0
2400 PRINT " "
2410 COLOR 10, 5
2415 DELAY 0.1
2420 NEXT
2430 XD = 22
2440 N = 1
2445 IF vv = 1 THEN K = 2 ELSE K = 1
2450 COLOR 10, 0
2460 LOCATE 23, 68
2470 Y = 20
2480 X = 25
2490 NX = 0: COLOR 4, 3
2500 PRINT "-"; tl - 1
2510 COLOR 10, 4
2520 LOCATE 23, 50
2530 PRINT " "
2540 LOCATE 15, 19
2550 COLOR 20, 0
2560 PRINT "Press any key"
2570 I$ = INKEY$
2580 IF I$ = "" THEN 2570
2590 IF ASC(I$) = 27 THEN 3400
2600 LOCATE 15, 17
2610 PRINT SPC(22);
2620 COLOR 10, 4
2630 RETURN
2640 SCREEN 0, 2, 0, 0: LOCATE 15, 17
2655 COLOR 20, 0
2670 INPUT "Speed (1-10)"; sp
2680 IF sp < 1 THEN sp = 1
2682 IF sp > 10 THEN sp = 9
2685 IF sp = 10 THEN TIMER ON ELSE TIMER STOP
2690 LOCATE 15, 17
2700 PRINT SPC(22);
2710 COLOR 10, 4
2720 LOCATE 15, 50
2730 PRINT " "
2740 COLOR 10, 4
2750 RETURN
2760 LOCATE 12, 17
2770 COLOR 20, 0
2780 FOR I = 12 TO 14
2790 JX = INT((50 - LEN(PR$(I - 11))) / 2)
2800 LOCATE I, JX
2810 PRINT PR$(I - 11)
2820 NEXT
2830 IF INKEY$ = "" THEN 2830
2840 FOR I = 12 TO 14
2850 LOCATE I, JX
2860 PRINT SPC(21);
2870 NEXT
2880 RETURN
2890 LOCATE 23, 61
2900 COLOR 10, 5
2910 PRINT SPC(6);
2920 COLOR 4, 3
2930 LOCATE 23, 68
2940 PRINT "-"; tl - 1
2950 GOTO 770
2960 IF PL = 5 THEN NY = 1: y1 = y1 - 1: GOTO 1400
2965 IF X < XD OR X > XD + DL - 1 THEN 1480
2970 IF PL = 3 THEN NX = 0: NY = 1: GOTO 1460
2980 IF X = XD + INT(DL / 2) OR X = XD + INT(DL / 2) + 1 THEN 3000 ELSE 3040
2990 IF INT(RND(1) * 2) = 0 THEN 3040
3000 NX = 0
3010 NY = 1
3020 Y = Y - 1
3030 GOTO 1460
3040 NY = 1
3050 IF X = XD OR X = XD + DL THEN Y = Y - 1
3060 GOTO 1460
3070 IF PL = 5 THEN NY = 1: y1 = y1 - 1: GOTO 1440
3075 IF X < XD OR X > XD + DL THEN 1480 ELSE 3040
3080 UR = 1: LOCATE 15, 17: COLOR 20, 0
3090 IF B < OA(2) THEN 3790
3100 INPUT "What is your name"; NA$
3110 SCREEN 0, 2, 1, 0
3120 IF NA$ = "" THEN NA$ = "Incognito"
3130 K = ASC(MID$(NA$, 1, 1))
3140 IF K > 90 AND K < 117 THEN NA$ = CHR$(K - 32) + MID$(NA$, 2)
3150 IA$(2) = NA$
3160 OA(2) = B
3170 FOR I = 2 TO 19
3180 IF B > OA(I + 1) THEN 3190 ELSE 3220
3190 SWAP IA$(I), IA$(I + 1)
3200 SWAP OA(I), OA(I + 1)
3210 NEXT I
3220 H = I
3225
3230 RT = 0
3240 FOR I = 20 TO 2 STEP -1
3250 RT = RT + 1
3260 LOCATE 2 + RT, 2
3270 IF I = H THEN COLOR 10, 4 ELSE COLOR 10, 1
3280 LOCATE 2 + RT, 2
3290 PRINT SPC(37);
3300 LOCATE 2 + RT, 3
3310 PRINT 21 - I
3320 LOCATE 2 + RT, 6
3330 PRINT " ) "; MID$(IA$(I), 1, 25)
3340 LOCATE 2 + RT, 30
3350 PRINT "-"; OA(I)
3360 NEXT I
3370 G = 2
3380 IF NH = 1 THEN SCREEN 0, 2, 1, 1 ELSE RETURN
3390 IF INKEY$ = "" THEN 3390 ELSE 3820
3400 COLOR 20, 0
3410 SCREEN 0, 2, 0, 0
3420 LOCATE 15, 2
3430 PRINT SPC(40);
'3440 LOCATE 14, 18: PRINT CHR$(201); ST$; CHR$(187): LOCATE 16, 18: PRINT CHR$(200); ST$; CHR$(188)
'3450 LOCATE 15, 18: PRINT CHR$(186); "Exit (Y/N)?"; CHR$(186)
3450 LOCATE 15, 19: PRINT "Exit (Y/N)?"
3460 I$ = INKEY$
3470 IF I$ = "y" OR I$ = "Y" THEN 3710
3480 IF I$ = "n" OR I$ = "N" THEN 3490 ELSE 3460
3490 LOCATE 15, 18: PRINT SPC(15); : LOCATE 14, 18: PRINT SPC(15); : LOCATE 16, 18: PRINT SPC(15);
3500 RETURN
3510 IF UR = 1 THEN B = 0: E = 0
3520 NX = 0
3530 N = 1
3540 COLOR 10, 0
3550 IF G = 1 THEN 3600
3560 FOR I = 12 TO 22
3570 LOCATE I, 2
3580 PRINT SPC(47);
3590 NEXT
3600 Y = 21
3610 X = 25
3620 NY = 2
3630 XD = 22
3640 ZV = 2
3650 FOR I = 1 TO 10: IF ZVX(I) > 0 THEN LOCATE ZVY(I), ZVX(I): PRINT " "
3660 ZVX(I) = 0: ZVY(I) = 0: qm(I) = 0: NEXT
3670 IF tl = 0 THEN tl = 4
3680 LOCATE 23, 2
3690 PRINT SPC(48);
3700 GOTO 740
3710 CLS
3720 OPEN "arjcorn.dat" FOR OUTPUT AS #1
3730 FOR I = 1 TO 20
3740 PRINT #1, IA$(I)
3750 PRINT #1, OA(I)
3760 NEXT
3770 CLOSE #1
3780 END
3790 LOCATE 15, 20
3800 G = 1
3810 GOTO 3820'2890
3820 IF tl = 0 THEN 4000 ELSE 4050
3830 SCREEN 0, 2, 1, 2
3840 COLOR 10, 4
3850 FOR I = 3 TO 22
3860 LOCATE I, 40
3870 PRINT "                                        "
3880 NEXT
3890 FOR I = 4 TO 13
3900 LOCATE I + I - 5, INT((40 - LEN(PR$(I - 4))) / 2 + 40)
3910 PRINT PR$(I - 4)
3920 NEXT
3930 SCREEN 0, 2, 1, 0
3940 GOSUB 3230
3950 GOSUB 4400
3960 SCREEN 0, 2, 1, 1
3970 IF INKEY$ = "" THEN 3970 ELSE SCREEN 0, 2, 0, 0
3980 NH = 1
3990 RETURN
4000 kuk = FIX((UR - 1) / 7) * 7
4005 IF UR = 1 + kuk THEN RESTORE 8770
4007 IF UR = 2 + kuk THEN RESTORE 4680
4010 IF UR = 3 + kuk THEN RESTORE
4020 IF UR = 4 + kuk THEN RESTORE 4760
4025 IF UR = 5 + kuk THEN RESTORE 7000
4026 IF UR = 6 + kuk THEN RESTORE 7770
4027 IF UR = 7 + kuk THEN RESTORE 8780
4030 SCREEN 0, 2, 0, 0
4040 GOTO 3510
4050 SCREEN 0, 2, 0, 0
4060 RETURN
4070 FOR I = 1 TO 20
4080 IA$(I) = "..."
4090 NEXT': GOTO 320
4100 OPEN "arjcorn.dat" FOR INPUT AS #1
4110 FOR I = 1 TO 20
4120 IF EOF(1) THEN 4170
4130 INPUT #1, IA$(I)
4140 INPUT #1, OA(I)
4150 IF IA$(I) = "" THEN IA$(I) = "..."
4160 NEXT
4170 CLOSE #1
4180 GOTO 320
4190 COLOR 10, 0
4200 FOR I = 2 TO 10
4210 IF ZVX(I) = 0 THEN ZV = I: GOTO 4310
4220 IF qm(I) = 1 THEN Z$ = "A"' ELSE Z$ = "S"
4225 IF qm(I) = 2 THEN Z$ = "X"
4230 IF qm(I) = 3 THEN Z$ = "S"
4235 IF qm(I) = 4 THEN Z$ = "B"
4237 IF qm(I) = 5 THEN Z$ = "W"
4240 IF A(ZVY(I), ZVX(I)) = 0 THEN LOCATE ZVY(I), ZVX(I): PRINT " "
4250 ZVY(I) = ZVY(I) + INT(RND(1)) + .3
4260 IF A(ZVY(I), ZVX(I)) = 0 THEN LOCATE ZVY(I), ZVX(I): PRINT Z$
4270 IF ZVY(I) < 22 THEN 4310
4280 LOCATE 22, ZVX(I): PRINT " "
4290 IF XD - 1 < ZVX(I) AND ZVX(I) < XD + DL + 1 THEN GOSUB 4660
4300 ZVX(I) = 0: ZVY(I) = 0: qm(I) = 0
4310 NEXT
4320 RETURN
4330 IF qm(I) = 1 THEN PL = 1: A$ = CHR$(24) + "    " + CHR$(24): RETURN
4340 IF qm(I) = 3 THEN PL = 3: A$ = STRING$(6, 176): RETURN
4345 IF qm(I) = 4 THEN tl = tl + 1: LOCATE 23, 68: COLOR 4, 3: PRINT "-"; tl - 1: RETURN
4347 IF qm(I) = 5 THEN PL = 5: LOCATE 23, 2: COLOR 4, 0: PRINT STRING$(48, 176): zsm = 176: RETURN
4350 A$ = "   " + STRING$(4, 178) + "   "
4360 DL = 10
4370 RETURN
4380 DL = 6: A$ = "      ": PL = 0: LOCATE 23, 2: PRINT STRING$(48, 32): LOCATE 23, 69
4388 ts = 0: zsm = 32: LOCATE 1, sb: COLOR 4, 4: PRINT "        ": COLOR 10, 0: LOCATE 23, 69
4390 RETURN
4400 FOR I = 1 TO 80
4410 LOCATE 2, I: PRINT CHR$(205): LOCATE 22, I: PRINT CHR$(205): NEXT
4420 LOCATE 2, 1: PRINT CHR$(201): LOCATE 2, 80: PRINT CHR$(187): LOCATE 22, 1: PRINT CHR$(200): LOCATE 22, 80: PRINT CHR$(188)
4430 FOR I = 3 TO 21: LOCATE I, 1: PRINT CHR$(186): LOCATE I, 80: PRINT CHR$(186): LOCATE I, 39: PRINT CHR$(186): NEXT
4440 LOCATE 2, 39: PRINT CHR$(203): LOCATE 22, 39: PRINT CHR$(202): LOCATE 22, 80: PRINT CHR$(188)
4450 RETURN
4460 LOCATE 22, XD: COLOR 4, 0: PRINT "^": LOCATE 22, XD + DL - 1: PRINT "^"
4465 DELAY 0.1
4470 FOR I1 = 15 TO 2 STEP -1: IF A(I1, XD + 1) < 5 AND A(I1, XD + 1) > 0 THEN 4520
4480 IF A(I1, XD + DL - 1) < 5 AND A(I1, XD + DL - 1) THEN 4520
4490 NEXT
4500 LOCATE 22, XD: COLOR 4, 0: PRINT " ": LOCATE 22, XD + DL - 1: PRINT " "
4510 RETURN
4520 IF BD = XD + DL - 1 THEN BD = 0: GOTO 4500
4530 IF BD = 0 THEN BD = XD + 1 ELSE BD = XD + DL - 1
4540 SR = INT((BD - 2) / 4) * 4 + 2
4550 IF SR < 2 THEN SR = 2
4560 RR = SR + 3
4570 IF RR > 49 THEN RR = 49
4580 IF A(I1, BD) = 2 OR A(I1, BD) = 3 OR A(I1, BD) = 4 THEN B = B + 1: LOCATE 21, 67: COLOR 4, 3: PRINT B
4590 IF B = E THEN UR = UR + 1: GOTO 4000
4600 FOR I = SR TO RR
4610 IF A(I1, I) < 5 THEN A(I1, I) = 0 ELSE 4520
4620 LOCATE I1, I
4630 COLOR 4, 0
4640 PRINT " "
4650 NEXT: GOTO 4520
4660 GOSUB 4380
4670 GOTO 4330
4680 DATA 2,3,2,3,2,3,2,3,2,3,2,3
4690 DATA 3,2,3,2,3,2,3,2,3,2,3,2
4700 DATA 2,3,2,3,2,3,2,3,2,3,2,3
4710 DATA 3,2,3,2,3,2,3,2,3,2,3,2
4720 DATA 2,3,2,4,4,4,4,4,4,3,2,3
4730 DATA 3,2,3,2,3,2,3,2,3,2,3,2
4740 DATA 2,3,2,3,2,3,2,3,2,3,2,3
4750 DATA 5,5,5,2,3,2,3,2,3,5,5,5,7
4760 DATA 2,3,2,3,2,3,2,3,2,3,2,3
4770 DATA 3,2,3,2,3,2,3,2,3,2,3,2
4780 DATA 2,3,2,3,2,3,2,3,2,3,2,3
4790 DATA 3,2,3,2,3,2,3,2,3,2,3,2
4800 DATA 2,3,2,5,5,5,5,5,5,5,5,5
4810 DATA 3,2,3,4,3,2,3,2,4,2,3,2
4820 DATA 2,3,2,4,2,3,2,3,4,3,2,3
4825 DATA 3,2,3,4,3,2,3,2,4,2,3,2
4830 DATA 5,5,5,5,5,5,5,5,5,3,2,3,7
4840 DATA 0,0,0,1,1,1,1,0,0,0,1,1,1,0,0,1,1,1,1,0,0,0,0
4850 DATA 0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0
4860 DATA 0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0
4870 DATA 0,0,0,1,1,1,1,0,0,1,0,0,0,1,0,1,1,1,1,0,0,0,0
4880 DATA 0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0
'4890 DATA 0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0
4900 DATA 0,0,0,1,0,0,0,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,0
4910 DATA 0,1,1,1,0,0,0,1,1,1,0,0,1,1,1,1,0,0,1,0,0,0,1
4920 DATA 1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1
4930 DATA 1,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,1,1,0,0,1
4940 DATA 1,0,0,0,0,0,1,0,0,0,1,0,1,1,1,1,0,0,1,0,1,0,1
4950 DATA 1,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,1,1
4960 DATA 1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,1
4970 DATA 0,1,1,1,0,0,0,1,1,1,0,0,1,0,0,0,1,1,1,0,0,0,1
4980 COLOR , 3
4990 FOR I = 1 TO 23: LOCATE I, 51: PRINT STRING$(29, " "): LOCATE 1, 1, 0: NEXT
5000 RESTORE 4840
5010 COLOR 10, 0
5020 FOR I1 = 4+1 TO 17+1
5030 FOR I4 = 54 TO 76
5040 READ RC
5050 LOCATE I1, I4
5060 IF RC = 1 THEN PRINT " "
5070 NEXT I4
5080 NEXT I1
5090 RESTORE 4840
5100 COLOR 4, 4
5110 FOR I2 = 5 TO 18
5120 FOR I5 = 53 TO 75
5130 READ RC
5140 LOCATE I2, I5
5150 IF RC = 1 THEN PRINT " "
5160 NEXT I5
5170 NEXT I2
5180 RETURN
7000 DATA 2,3,2,3,2,3,2,3,2,3,2,3
7100 DATA 3,2,3,2,3,2,3,2,3,2,3,2
7700 DATA 2,3,2,3,4,5,5,4,2,3,2,3
7710 DATA 3,2,3,2,3,2,3,2,3,2,3,2
7715 DATA 5,5,5,5,5,4,4,5,5,5,5,5
7720 DATA 3,2,3,2,3,2,3,2,3,2,3,2
7730 DATA 2,3,2,3,2,3,2,3,2,3,2,3
7740 DATA 3,2,3,5,5,5,5,5,5,2,3,2
7750 DATA 5,4,4,3,2,3,2,3,2,4,4,5,7
7770 DATA 2,3,2,3,2,3,2,3,2,3,2,3
7771 DATA 3,2,3,2,3,2,3,2,3,2,3,2
7772 DATA 5,5,5,4,4,5,5,4,2,5,5,5
7773 DATA 3,2,3,2,3,2,3,2,3,2,3,2
7774 DATA 2,3,2,3,2,3,2,3,2,3,2,3
7775 DATA 5,5,5,4,4,5,5,4,4,5,5,5
7776 DATA 2,3,2,3,2,3,2,3,2,3,2,3
7777 DATA 3,2,3,2,3,2,3,2,3,2,3,2
7778 DATA 4,4,5,5,5,5,5,5,5,5,4,4,7
8770 DATA 2,3,2,3,2,3,2,3,2,3,2,3
8771 DATA 3,4,3,2,4,2,3,4,3,2,4,2
8772 DATA 2,3,2,3,2,3,2,3,2,3,2,3
8773 DATA 3,2,4,2,3,2,4,2,3,4,3,2
8774 DATA 2,3,2,3,2,3,2,3,2,3,2,3
8775 DATA 3,4,3,2,4,2,3,4,3,2,4,2
8776 DATA 2,3,2,3,2,3,2,3,2,3,2,3
8777 DATA 3,2,4,2,3,2,4,2,3,4,3,2,7
8780 DATA 2,3,2,5,2,3,2,3,5,3,2,2
8781 DATA 3,2,3,5,3,2,3,2,5,2,3,2
8782 DATA 2,3,2,5,4,4,4,4,5,3,2,3
8783 DATA 3,2,3,2,3,2,3,2,3,2,3,2
8784 DATA 5,5,2,3,2,3,2,3,2,3,5,5
8785 DATA 3,2,3,2,3,2,3,2,3,2,3,2
8786 DATA 2,3,2,4,4,5,5,4,4,3,2,3
8787 DATA 3,2,3,2,3,2,3,2,3,2,3,2
8788 DATA 5,5,5,5,4,4,4,4,5,5,5,5,7
9000 IF ERR = 53 THEN OPEN "arjcorn.dat" FOR OUTPUT AS #1: CLOSE : RESUME
9100 LOCATE 1, 65
9110 COLOR 4, 3
9120 PRINT MID$(TIME$, 1, 6); "00": RETURN