350 X = 128:Y = 84:DIR = 1: REM CURSOR STARTS IN THE MIDDLE OF BOARD
360 XDRAW 3 AT 15,60: XDRAW 4 AT 270,60
370 IF F = 0 AND T = 1 THEN T = 1: FOR H = 1 TO 10:SO = PEEK(S) - PEEK(S) + PEEK(S): NEXT : FOR H = 1 TO 1250: NEXT : XDRAW 4 AT 270,60:F = 1: REM READY TO GO
380 IF OT = 1 THEN XDRAW 3 AT 15,60: XDRAW 4 AT 270,60:OT = 0: REM FOR PLAYER SCORES MUST CONTINUE
390 PRINT CHR$(7): IF T = 0 THEN PRINT CHR$(7)
400 XDRAW 1 AT X,Y: FOR H = 1 TO TMP: NEXT :SO = PEEK(S) - PEEK(S)
410 XDRAW 1 AT X,Y: FOR H = 1 TO TMP: NEXT
420 R = PEEK( -16384): POKE -16368,0
430 IF (R -128) = 32 THEN 560
440 X = X +DIR *28
450 IF X >240 AND DIR >0 THEN Y = Y +26:X = 44: GOTO 520
460 IF X = 16 AND DIR <0 THEN Y = Y -26:X = 240: GOTO 530
470 IF (R -128) = 21 THEN DIR = 1
480 IF (R -128) = 8 THEN DIR = -1
490 IF (R -128) = 65 THEN X = 44:Y = 6:DIR = 1: GOTO 400
500 IF (R -128) = 90 THEN X = 240:Y = 188:DIR = -1
510 GOTO 400
520 IF Y >188 AND DIR >0 THEN Y = 6: GOTO 400
530 IF Y <0 AND DIR <0 THEN Y = 188
540 GOTO 400
550 REM SPACE BAR PRESSED. FIND DIRCTION FOR CONNECTION
560 HCOLOR= 7: SCALE= 1:DF = 0:PW = 1
570 ON PW GOTO 580,600,620,640
580 IF X = 240 THEN DF = DF +1: GOTO 600
590 GOTO 650
600 IF Y = 188 THEN DF = DF +1: GOTO 620
610 GOTO 650
620 IF X = 44 THEN DF = DF +1: GOTO 640
630 GOTO 650
640 IF Y = 6 THEN DF = DF +1: GOTO 580
650 ROT= (PW -1) *16: XDRAW 2 AT X,Y: FOR H = 1 TO 5: NEXT : XDRAW 2 AT X,Y
660 R = PEEK( -16384): POKE -16368,0
670 IF (R -128) = 13 THEN 720
680 IF (R -128) = 27 THEN 440: REM PRESS ESC KEY TO CHANGE MIND BEFORE DRAW A LINE
690 IF (R -128) = 32 THEN DF = DF +1
700 PW = INT((DF/4 - INT(DF/4)) *4 +.55) +1
710 GOTO 570
720 J = (X -44)/28 +2:K = (Y -6)/26 +2
730 ROT= 0:PR = 4:ER = 3: HCOLOR= 1: IF T = 1 THEN PR = 3:ER = 4: HCOLOR= 4
740 ON PW GOTO 750,770,790,810
750 IF HD(J,K) = 1 THEN 830
760 HD(J,K) = 1: GOTO 850: REM RIGHTWARD
770 IF VD(J,K) = 1 THEN 830
780 VD(J,K) = 1: GOTO 1210: REM DOWNWARD
790 IF HD(J -1,K) = 1 THEN 830
800 HD(J -1,K) = 1: GOTO 1090: REM LEFTWARD
810 IF VD(J,K -1) = 1 THEN 830
820 VD(J,K -1) = 1: GOTO 970: REM UPWARD
830 PRINT CHR$(7): GOTO 440: REM ILLEGAL - LINE ALREADY EXISTS
840 REM RIGHTWARD
850 HCOLOR= 0: HPLOT X,Y -1 TO X +28,Y -1: HCOLOR= 3: HPLOT X,Y TO X +28,Y
860 GOSUB 1460: GOSUB 1490: GOSUB 1580: GOSUB 1610: REM UP RIGHT,DOWN RIGHT,UP MID,DOWN MID
870 IF HD(J,K) +HD(J,K -1) +VD(J,K -1) +VD(J +1,K -1) < >4 THEN 910
880 IF SD(J,K -1) = ER THEN XDRAW ER AT X +14,Y -13: GOSUB 2660
890 IF SD(J,K -1) < >PR THEN XDRAW PR AT X +14,Y -13: FOR H = 1 TO 20:SO = PEEK(S) - PEEK(S): NEXT : GOSUB 2700
900 SD(J,K -1) = PR
910 IF HD(J,K) +HD(J,K +1) +VD(J,K) +VD(J +1,K) < >4 THEN 950
920 IF SD(J,K) = ER THEN XDRAW ER AT X +14,Y +13: GOSUB 2660
930 IF SD(J,K) < >PR THEN XDRAW PR AT X +14,Y +13: FOR H = 1 TO 15:SO = PEEK(S) - PEEK(S) + PEEK(S) - PEEK(S): NEXT : GOSUB 2700
940 SD(J,K) = PR
950 GOTO 1310
960 REM UPWARD
970 HCOLOR= 0: HPLOT X,Y TO X,Y -26: HCOLOR= 3: HPLOT X,Y TO X,Y -26
980 GOSUB 1460: GOSUB 1520: GOSUB 1640: GOSUB 1670: REM UP RIGHT,UP LEFT,RIGHT MID,LEFT MID
990 IF HD(J,K) +HD(J,K -1) +VD(J,K -1) +VD(J +1,K -1) < >4 THEN 1030
1000 IF SD(J,K -1) = ER THEN XDRAW ER AT X +14,Y -13: GOSUB 2660
1010 IF SD(J,K -1) < >PR THEN XDRAW PR AT X +14,Y -13: FOR H = 1 TO 20:SO = PEEK(S) - PEEK(S) + PEEK(S): NEXT : GOSUB 2700
1020 SD(J,K -1) = PR
1030 IF HD(J -1,K) +HD(J -1,K -1) +VD(J,K -1) +VD(J -1,K -1) < >4 THEN 1070
1040 IF SD(J -1,K -1) = ER THEN XDRAW ER AT X -14,Y -13: GOSUB 2660
1050 IF SD(J -1,K -1) < >PR THEN XDRAW PR AT X -14,Y -13: FOR H = 1 TO 25:SO = PEEK(S) - PEEK(S) + PEEK(S) - PEEK(S): NEXT : GOSUB 2700
1060 SD(J -1,K -1) = PR
1070 GOTO 1310
1080 REM LEFTWARD
1090 HCOLOR= 0: HPLOT X,Y -1 TO X -28,Y -1: HCOLOR= 3: HPLOT X,Y TO X -28,Y
1100 GOSUB 1520: GOSUB 1550: GOSUB 1580: GOSUB 1610: REM UP LEFT,DOWN LEFT,UP MID,DOWN MID
1110 IF HD(J -1,K) +HD(J -1,K -1) +VD(J -1,K -1) +VD(J,K -1) < >4 THEN 1150
1120 IF SD(J -1,K -1) = ER THEN XDRAW ER AT X -14,Y -13: GOSUB 2660
1130 IF SD(J -1,K -1) < >PR THEN XDRAW PR AT X -14,Y -13: FOR H = 1 TO 10:SO = PEEK(S) - PEEK(S) + PEEK(S) - PEEK(S): NEXT : GOSUB 2700
1140 SD(J -1,K -1) = PR
1150 IF HD(J -1,K) +HD(J -1,K +1) +VD(J -1,K) +VD(J,K) < >4 THEN 1190
1160 IF SD(J -1,K) = ER THEN XDRAW ER AT X -14,Y +13: GOSUB 2660
1170 IF SD(J -1,K) < >PR THEN XDRAW PR AT X -14,Y +13: FOR H = 1 TO 15:SO = PEEK(S) - PEEK(S): NEXT : GOSUB 2700
1180 SD(J -1,K) = PR
1190 GOTO 1310
1200 REM DOWNWARD
1210 HCOLOR= 0: HPLOT X,Y TO X,Y +26: HCOLOR= 3: HPLOT X,Y TO X,Y +26
1220 GOSUB 1550: GOSUB 1490: GOSUB 1640: GOSUB 1670: REM DOWN LEFT,DOWN RIGHT,RIGHT MID,LEFT MID
1230 IF HD(J,K) +HD(J,K +1) +VD(J,K) +VD(J +1,K) < >4 THEN 1270
1240 IF SD(J,K) = ER THEN XDRAW ER AT X +14,Y +13: GOSUB 2660
1250 IF SD(J,K) < >PR THEN XDRAW PR AT X +14,Y +13: FOR H = 1 TO 20:SO = PEEK(S) - PEEK(S) + PEEK(S) - PEEK(S) + PEEK(S): NEXT : GOSUB 2700
1260 SD(J,K) = PR
1270 IF HD(J -1,K) +HD(J -1,K +1) +VD(J -1,K) +VD(J,K) < >4 THEN 1310
1280 IF SD(J -1,K) = ER THEN XDRAW ER AT X -14,Y +13: GOSUB 2660
1290 IF SD(J -1,K) < >PR THEN XDRAW PR AT X -14,Y +13: FOR H = 1 TO 10:SO = PEEK(S) - PEEK(S) + PEEK(S) - PEEK(S) + PEEK(S): NEXT : GOSUB 2700
1300 SD(J -1,K) = PR
1310 X = 15:Y = 80:C = FT: GOSUB 2930
1320 X = 270:Y = 80:C = ST: GOSUB 2930
1330 IF ((FC < >FT) OR (SC < >ST)) AND V = 1 THEN MT = 5 -MT:OT = 1: REM FOR OPTION THAT PLAYER SCORES MUST CONTINUE
1340 FT = FC:ST = SC: REM SAVE CURRENT SCORE FOR ERASE NEXT TIME
1680 GOSUB 2540: GOSUB 2600: RETURN : REM LEFT MID 4 SQUARES
1690 REM ERASE UP RIGHT 4 SQUARES
1700 IF SD(J,K -1) = ER THEN XDRAW ER AT X +14,Y -13: GOSUB 2660
1710 IF SD(J,K -2) = ER THEN XDRAW ER AT X +14,Y -39: GOSUB 2660
1720 IF SD(J +1,K -1) = ER THEN XDRAW ER AT X +42,Y -13: GOSUB 2660
1730 IF SD(J +1,K -2) = ER THEN XDRAW ER AT X +42,Y -39: GOSUB 2660
1740 RETURN
1750 REM DRAW UP RIGHT 4 SQUARES
1760 IF SD(J,K -1) < >PR THEN XDRAW PR AT X +14,Y -13: FOR H = 1 TO 10:SO = PEEK(S) - PEEK(S) + PEEK(S) - PEEK(S) + PEEK(S) - PEEK(S): NEXT : GOSUB 2700
1770 IF SD(J,K -2) < >PR THEN XDRAW PR AT X +14,Y -39: FOR H = 1 TO 5:SO = PEEK(S) - PEEK(S) + PEEK(S) - PEEK(S): NEXT : GOSUB 2700
1780 IF SD(J +1,K -1) < >PR THEN XDRAW PR AT X +42,Y -13: FOR H = 1 TO 15:SO = PEEK(S) - PEEK(S): NEXT : GOSUB 2700
1790 IF SD(J +1,K -2) < >PR THEN XDRAW PR AT X +42,Y -39: FOR H = 1 TO 8:SO = PEEK(S) - PEEK(S) + PEEK(S) - PEEK(S) + PEEK(S) - PEEK(S): NEXT : GOSUB 2700
2060 IF SD(J -2,K) = ER THEN XDRAW ER AT X -42,Y +13: GOSUB 2660
2070 IF SD(J -2,K +1) = ER THEN XDRAW ER AT X -42,Y +39: GOSUB 2660
2080 IF SD(J -1,K) = ER THEN XDRAW ER AT X -14,Y +13: GOSUB 2660
2090 IF SD(J -1,K +1) = ER THEN XDRAW ER AT X -14,Y +39: GOSUB 2660
2100 RETURN
2110 REM DRAW DOWN LEFT 4 SQUARES
2120 IF SD(J -2,K) < >PR THEN XDRAW PR AT X -42,Y +13: FOR H = 1 TO 3:SO = PEEK(S) - PEEK(S) + PEEK(S) - PEEK(S) + PEEK(S) - PEEK(S): NEXT : GOSUB 2700
2130 IF SD(J -2,K +1) < >PR THEN XDRAW PR AT X -42,Y +39: FOR H = 1 TO 5:SO = PEEK(S) - PEEK(S) + PEEK(S): NEXT : GOSUB 2700
2140 IF SD(J -1,K) < >PR THEN XDRAW PR AT X -14,Y +13: FOR H = 1 TO 8:SO = PEEK(S) - PEEK(S) + PEEK(S) - PEEK(S) + PEEK(S): NEXT : GOSUB 2700
2150 IF SD(J -1,K +1) < >PR THEN XDRAW PR AT X -14,Y +39: FOR H = 1 TO 6:SO = PEEK(S) - PEEK(S) + PEEK(S) - PEEK(S) + PEEK(S) - PEEK(S): NEXT : GOSUB 2700
2300 IF SD(J -1,K) = ER THEN XDRAW ER AT X -14,Y +13: GOSUB 2660
2310 IF SD(J -1,K +1) = ER THEN XDRAW ER AT X -14,Y +39: GOSUB 2660
2320 IF SD(J,K) = ER THEN XDRAW ER AT X +14,Y +13: GOSUB 2660
2330 IF SD(J,K +1) = ER THEN XDRAW ER AT X +14,Y +39: GOSUB 2660
2340 RETURN
2350 REM DRAW DOWN MID 4 SQUARES
2360 IF SD(J -1,K) < >PR THEN XDRAW PR AT X -14,Y +13: FOR H = 1 TO 6:SO = PEEK(S) - PEEK(S) + PEEK(S) - PEEK(S) + PEEK(S): NEXT : GOSUB 2700
2370 IF SD(J -1,K +1) < >PR THEN XDRAW PR AT X -14,Y +39: FOR H = 1 TO 4:SO = PEEK(S) - PEEK(S) + PEEK(S): NEXT : GOSUB 2700
2380 IF SD(J,K) < >PR THEN XDRAW PR AT X +14,Y +13: FOR H = 1 TO 5:SO = PEEK(S) - PEEK(S) + PEEK(S): NEXT : GOSUB 2700
2390 IF SD(J,K +1) < >PR THEN XDRAW PR AT X +14,Y +39: FOR H = 1 TO 4:SO = PEEK(S) - PEEK(S) + PEEK(S) - PEEK(S) + PEEK(S) - PEEK(S): NEXT : GOSUB 2700
2540 IF SD(J -2,K -1) = ER THEN XDRAW ER AT X -42,Y -13: GOSUB 2660
2550 IF SD(J -1,K -1) = ER THEN XDRAW ER AT X -14,Y -13: GOSUB 2660
2560 IF SD(J -2,K) = ER THEN XDRAW ER AT X -42,Y +13: GOSUB 2660
2570 IF SD(J -1,K) = ER THEN XDRAW ER AT X -14,Y +13: GOSUB 2660
2580 RETURN
2590 REM DRAW LEFT MID 4 SQUARES
2600 IF SD(J -2,K -1) < >PR THEN XDRAW PR AT X -42,Y -13: FOR H = 1 TO 8:SO = PEEK(S) - PEEK(S): NEXT : GOSUB 2700
2610 IF SD(J -1,K -1) < >PR THEN XDRAW PR AT X -14,Y -13: FOR H = 1 TO 3:SO = PEEK(S) - PEEK(S) + PEEK(S) - PEEK(S) + PEEK(S): NEXT : GOSUB 2700
2620 IF SD(J -2,K) < >PR THEN XDRAW PR AT X -42,Y +13: FOR H = 1 TO 4:SO = PEEK(S) - PEEK(S): NEXT : GOSUB 2700
2630 IF SD(J -1,K) < >PR THEN XDRAW PR AT X -14,Y +13: FOR H = 1 TO 5:SO = PEEK(S) - PEEK(S) + PEEK(S) - PEEK(S) + PEEK(S) - PEEK(S): NEXT : GOSUB 2700
3140 DATA 14,0,30,0,44,0,58,0,94,0,131,0,145,0,153,0,163,0,175,0,185,0,197,0,208,0,217, 0,228,0,58,36,45,54,62,63,36,36,45,45,54,54,6,0: REM TOTAL 44
3150 DATA 46,44,46,44,46,44,46,36,172,46,62,62,54,0: REM TOTAL 14
3160 DATA 32,36,63,36,45,45,54,191,210,63,191,54,37,44,45,45,44,45,21,54,39,60,63,54,54,54,45,62,255,63,44,37,36,36,4,0: REM TOTAL 36
3170 DATA 36,8,24,56,191,23,110,48,13,24,24,77,40,46,14,254,48,158,58,247,104,9,23,63,94,49,23,23,23,79,37,12,53,173,63,55,0 : REM TOTAL 37
3180 DATA 12,37,28,63,23,54,46,30,14,45,5,36,4,0,36,188,150,18,45,28,36,0 : REM TOTAL 22
3190 DATA 101,228,63,23,150,241,46,45,37,0,12,12,60,63,183,146,21,45,12,228,7,0 : REM TOTAL 22
3200 DATA 58,39,12,12,12,54,174,55,62,0,56,39,44,45,245,170,54,23,63,28,4,0
3210 DATA 117,246,63,28,36,229,12,12,45,6,0,12,12,60,63,183,82,30,46,0 : REM TOTAL 20
3220 DATA 231,100,45,21,246,14,246,63,28,36,0,231,100,45,21,54,119,30,30,63,4,0 : REM TOTAL 22
3230 REM INSTRUCTIONS
3240 HOME : VTAB 3: PRINT "ON A 7 X 7 CHECKER BOARD OF DASH LINES, CONNECT DOTS INTO SQUARES. WHEN A LINE COMPLETES A UNIT SQUARE ,OR SQUARE THAT CONTAINS FOUR UNIT SQUARES, THE PLAYER OCCUPIES ALL THE SQUARES ENCLOSED.": PRINT
3250 PRINT "THE PLAYERS MAY WISH TO TAKE TURNS."
3260 PRINT "OR THE RULE IS WHOEVER INCREASES POINTS MUST KEEP ON GOING.": PRINT : PRINT
3270 PRINT "THE DIRECTION OF THE TRACING CURSOR IS CONTROLLED BY ARROW KEYS. KEY 'A' MOVES CURSOR TO HOME POSITION. KEY 'Z' TO LOW RIGHT CORNER. KEY 'SPACE BAR' TO SELECT DIRECTION TO FORM THE LINE."
3280 INVERSE : VTAB 23: PRINT "PRESS RETURN TO CONTINUE": NORMAL
3290 K = PEEK(49152): IF K <128 THEN 3290
3300 K = PEEK(49168): RETURN
3310 REM GET PLAYER'S NAME
3320 A$ = ""
3330 GET B$
3340 IF B$ = CHR$(13) AND LEN(A$) = 0 THEN 3330
3350 IF B$ = CHR$(13) THEN PRINT : RETURN
3360 IF B$ = CHR$(8) THEN 3390
3370 IF B$ < CHR$(91) OR B$ > CHR$(64) THEN A$ = A$ +B$: PRINT B$;: GOTO 3330
3380 GOTO 3420
3390 IF LEN(A$) = 0 THEN 3330
3400 PRINT B$" "B$;: IF LEN(A$) = 1 THEN A$ = "": GOTO 3330