Listing of file='LINKO.BAS;01' on disk='vmedia/lunar_lander-sector.ccvf'
100 REM LINKO - MAR 24,1980 110 REM WRITTEN BY DAVID B. SUITS 120 REM COPYRIGHT (C) 1980 BY COMPUCOLOR CORP. 130 DIM TI(12),P(7,13):DEF FN A(R)= INT (R* RND (1))+ 1 140 PLOT 14,6,37,12,3,26,12:PRINT "L I N K O" 150 PLOT 3,64,0:FOR J= 1TO 500:NEXT :PLOT 14,6,100 160 PLOT 3,64,0:FOR J= 1TO 1500:NEXT 170 PLOT 15,6,6,12 180 INPUT "WHAT LEVEL OF DIFFICULTY WOULD YOU LIKE (1-4)? ";DD$ 190 DD= INT (VAL (DD$)):IF DD< 1OR DD> 4THEN 180 200 SM= 5:IF DD> 2THEN SM= SM- (DD- 2) 210 PLOT 15,6,6,12,27,24:FOR J= 1TO 6:CR(J)= 12:NEXT 220 R= PEEK (33209):FOR J= 1TO R:RN= RND (1):NEXT 230 RD= 0:SN= 0:SY= 11:B= FN A(8) 240 ON BGOSUB 250,260,270,280,290,300,310,320:GOTO 970 250 RESTORE 340:RETURN 260 RESTORE 380:RETURN 270 RESTORE 420:RETURN 280 RESTORE 460:RETURN 290 RESTORE 500:RETURN 300 RESTORE 540:RETURN 310 RESTORE 580:RETURN 320 RESTORE 620:RETURN 330 REM BOARD 1 340 DATA 6,3,5,2,5,3,1,6,2,1,4,1,5,2,6,3,4,6,2,1,3,4,5,4 350 DATA 4,1,3,1,2,5,6,4,5,2,6,3,5,4,2,6,4,1,3,5,6,3,1,2 360 DATA 4,6,1,5,3,2,4,2,1,6,3,5,2,3,4,1,6,1,5,3,4,5,2,6 370 REM BOARD 2 380 DATA 6,2,4,6,5,3,2,1,4,3,5,1,5,3,2,1,4,1,6,3,5,6,4,2 390 DATA 1,4,6,5,3,2,5,1,2,4,3,6,3,6,5,2,1,6,4,5,3,2,1,4 400 DATA 2,1,3,5,6,4,3,2,4,5,6,1,5,6,4,1,2,5,6,4,3,1,2,3 410 REM BOARD 3 420 DATA 4,2,5,6,3,1,5,4,6,2,3,1,3,6,2,1,5,4,3,1,2,4,5,6 430 DATA 2,1,5,4,6,3,2,5,3,6,1,4,6,4,2,3,1,5,6,1,4,5,2,3 440 DATA 1,3,6,5,4,2,3,6,2,1,4,5,4,5,1,3,2,6,1,5,3,4,6,2 450 REM BOARD 4 460 DATA 3,2,1,4,5,6,4,3,1,2,5,1,5,6,4,3,1,2,3,6,5,6,4,6 470 DATA 1,3,5,2,4,6,5,2,1,3,2,4,4,6,2,6,5,3,1,4,6,5,1,3 480 DATA 2,5,1,3,1,2,6,5,4,3,4,2,1,2,3,6,4,5,4,2,1,5,3,6 490 REM BOARD 5 500 DATA 1,6,5,2,4,3,4,1,5,2,6,3,2,3,4,5,6,1,6,2,4,3,1,2 510 DATA 4,1,6,3,2,3,5,1,6,1,4,5,5,3,5,4,6,1,2,3,4,2,5,6 520 DATA 3,2,1,6,5,4,6,5,1,4,3,1,6,5,4,2,3,5,1,3,2,6,2,4 530 REM BOARD 6 540 DATA 4,2,6,3,5,4,3,5,4,1,6,1,5,3,4,1,6,2,6,1,3,5,2,4 550 DATA 1,2,6,2,4,5,3,5,6,4,3,2,6,4,1,5,3,1,2,4,3,2,5,6 560 DATA 2,5,4,6,2,3,6,1,5,4,1,3,3,1,5,1,6,1,4,2,3,2,6,5 570 REM BOARD 7 580 DATA 6,5,1,2,3,4,5,6,2,4,3,1,3,1,4,6,5,2,6,1,3,5,2,4 590 DATA 2,6,3,1,4,5,3,4,2,6,1,5,1,4,5,2,3,6,2,5,1,3,4,6 600 DATA 5,3,1,6,4,2,1,3,4,6,5,2,4,2,6,5,1,3,4,2,5,3,6,1 610 REM BOARD 8 620 DATA 5,4,6,2,5,4,3,5,1,6,2,3,6,1,3,4,6,2,1,2,3,5,4,1 630 DATA 2,3,2,5,4,5,6,4,6,1,3,2,4,5,6,3,1,3,1,2,5,4,5,6 640 DATA 3,2,1,6,2,4,5,3,1,6,2,4,1,6,4,5,3,1,6,2,4,3,1,5 650 REM 660 PLOT 6,3,14,3,57,3:PRINT SM:PLOT 15:RETURN 670 REM MARKERS 680 ON WGOSUB 690,700,710,720,730,740:GOTO 830 690 RESTORE 750:RETURN 700 RESTORE 760:RETURN 710 RESTORE 770:RETURN 720 RESTORE 780:RETURN 730 RESTORE 790:RETURN 740 RESTORE 800:RETURN 750 DATA 0,0,0,0,0,224,110,102,0,240,15,0 760 DATA 0,0,0,0,102,230,14,0,0,240,15,0 770 DATA 0,240,15,0,0,112,103,102,0,0,0,0 780 DATA 0,240,15,0,102,118,7,0,0,0,0,0 790 DATA 0,240,15,0,0,240,15,0,0,240,15,0 800 DATA 0,0,0,0,102,102,102,102,0,0,0,0 810 PLOT 255 820 PLOT 26,26,26,26,10:RETURN 830 PLOT 6,37,3,X1,Y1:FOR K= 1TO 3:PLOT 2,254 840 FOR J= 1TO 4:READ TI(J):PLOT TI(J):NEXT J 850 GOSUB 810:NEXT K:RETURN 860 REM COLORS 870 R= FN A(6) 880 ON RGOSUB 900,910,920,930,940,950:PLOT 6,CO 890 CN= CO+ 7* (CO< > 7):RETURN 900 CO= 63:RETURN 910 CO= 55:RETURN 920 CO= 23:RETURN 930 CO= 7:RETURN 940 CO= 31:RETURN 950 CO= 15:RETURN 960 REM 970 FOR RW= 1TO 6:SX= 12:SY= SY+ 3:FOR C= 1TO 12:SX= SX+ 4 980 SN= SN+ 1:READ R:GOSUB 880:P(RW,C)= CO:PLOT 3,SX,SY 990 PRINT "neeo";:GOSUB 820:PRINT "a";:IF SN< 10THEN PRINT " "; 1000 PLOT 6,CN:PRINT RIGHT$ (STR$ (SN),LEN (STR$ (SN))- 1); 1010 PLOT 6,CO:PRINT "b";:GOSUB 820:PRINT "lm" 1020 NEXT C,RW:PLOT 6,6,3,18,0:PRINT "n"; 1030 FOR J= 1TO 41:PRINT "e";:NEXT :PRINT "o" 1040 PLOT 27,10,3,60,1:PRINT "bbbbbbbbbb" 1050 PLOT 3,18,1:PRINT "aaaaaaaaaa":PLOT 27,24,3,18,11 1060 PRINT "l";:FOR J= 1TO 41:PRINT "";:NEXT :PRINT "m" 1070 W= 0:Y1= 6:FOR X1= 20TO 55STEP 7:W= W+ 1 1080 GOSUB 680:PLOT 6,1,10,25:PRINT W:NEXT X1 1090 PLOT 6,7,3,3,5:PRINT "neo neo" 1100 PLOT 3,3,6:PRINT "lm lm" 1110 PLOT 3,19,5:PRINT "teeeeeeeeeeeeeeeeeeeeeeeeeu" 1120 PLOT 3,47,5:PRINT "teeeeeeeeeeeu" 1130 PLOT 3,25,2:PRINT "ANGLE MARKERS:":PLOT 3,24,3:PRINT "UNLIMITED SUPPLY" 1140 PLOT 3,47,1:PRINT "STRAIGHT":PLOT 3,47,2:PRINT "MARKERS" 1150 PLOT 3,47,3:PRINT "REMAINING:":GOSUB 660 1160 IF DD= 1THEN 1310 1170 REM ADVANCED GAME 1180 FOR J= 1TO 6 1190 AX(J)= FN A(12):AY(J)= FN A(6):IF J= 1THEN 1230 1200 F6= 0 1210 FOR K= 1TO J- 1:IF P(AY(K),AX(K))= P(AY(J),AX(J))THEN F6= - 1 1220 NEXT K:IF F6THEN 1190 1230 PLOT 6,5,3,12+ AX(J)* 4,11+ AY(J)* 3 1240 PRINT "XXXX";:GOSUB 820 1250 IF AX(J)< 10AND AY(J)= 1THEN PRINT "XX";:GOTO 1270 1260 PRINT "X";:PLOT 25 1270 PLOT 25:PRINT "X";:GOSUB 820:PRINT "XXXX":NEXT J 1280 FOR J= 1TO 6:P(AY(J),AX(J))= 10:CR(J)= CR(J)- 1:NEXT 1290 REM 1300 REM BEGIN 1310 F5= 0:RD= RD+ 1:PLOT 14,3,3,29:PRINT "ROUND:"RD:PLOT 15 1320 PL= 0:PLOT 8:FOR J= 1TO 5:PRINT SPC( 18)"":NEXT 1330 PRINT SPC( 3)"":PRINT SPC( 3)"" 1340 FOR J= 5TO 6:PLOT 3,11,J:PRINT SPC( 7)"":NEXT 1350 FOR J= 1TO 6:PRINT SPC( 18)"":NEXT 1360 PLOT 3,1,1:PRINT "PRESS RETURN" 1370 INPUT " TO ROLL DICE...";A$:IF A$= "-9"THEN 2340 1380 PLOT 8:FOR J= 1TO 5:PRINT SPC( 18)"":NEXT 1390 RS= FN A(30)+ 5:FOR ROLL= 1TO RS 1400 FOR XD= 3TO 8STEP 5:GOSUB 870 1410 IF XD= 3THEN D1= CO:R1= R 1420 IF XD= 8THEN D2= CO:R2= R 1430 PLOT 3,XD,5:PRINT "neo":PLOT 3,XD,6:PRINT "lm" 1440 NEXT XD,ROLL 1450 PLOT 6,2:PL= PL+ 1:IF PL< 3THEN 1650 1460 REM CHECK FOR WIN 1470 F3= 0:FOR K= 1TO 6:C= 1:RW= K 1480 ON P(K,1)GOTO 1490,1510,1490,1540,1490,1570 1490 NEXT K:IF F3THEN 1630 1500 GOTO 1310 1510 RW= RW+ 1:IF RW= 7THEN 1490 1520 ON P(RW,C)GOTO 1490,1490,1570,1600,1510,1490 1530 GOTO 1490 1540 RW= RW- 1:IF RW= 0THEN 1490 1550 ON P(RW,C)GOTO 1570,1600,1490,1490,1540,1490 1560 GOTO 1490 1570 C= C+ 1:IF C= 13THEN K= 6:F3= - 1:GOTO 1490 1580 ON P(RW,C)GOTO 1490,1510,1490,1540,1490,1570 1590 GOTO 1490 1600 C= C- 1:IF C= 0THEN 1490 1610 ON P(RW,C)GOTO 1510,1490,1540,1490,1490,1600 1620 GOTO 1490 1630 PLOT 14,3,3,17:PRINT "YOU WIN!":PLOT 15:GOTO 2340 1640 REM 1650 IF PL= 2THEN 1680 1660 CR(R1)= CR(R1)- 1:CR(R2)= CR(R2)- 1 1670 IF CR(R1)< 0OR CR(R2)< 0THEN 2300 1680 PLOT 3,3,8:PRINT "PLAY #"PL 1690 IF PL= 1OR D1= D2THEN 1720 1700 IF F5= 1THEN PLOT 3,11,6:PRINT "<--":GOTO 1720 1710 PLOT 3,0,6:PRINT "-->" 1720 PLOT 3,0,9:FOR J= 1TO 4:PRINT SPC( 18)"":NEXT 1730 PLOT 3,1,10:INPUT "WHICH MARKER? ";MA:IF MA= - 9THEN 2340 1740 IF MA< > INT (MA)OR MA< 1OR MA> 6THEN 1720 1750 IF MA> 4AND SM= 0THEN GOSUB 2200:GOTO 1720 1760 PLOT 3,0,12:PRINT SPC( 18)"":PLOT 3,1,12:INPUT "PUT IT WHERE? ";NB 1770 IF NB= - 9THEN 2340 1780 IF NB< > INT (NB)OR NB< 1OR NB> 72THEN 1760 1790 RW= 0 1800 RW= RW+ 1:IF NB> (RW* 12)THEN 1800 1810 C= NB- ((RW- 1)* 12) 1820 IF P(RW,C)= 0THEN GOSUB 2260:GOTO 1720 1830 IF P(RW,C)= 10THEN GOSUB 2170:GOTO 1720 1840 IF P(RW,C)> 0AND P(RW,C)< 7THEN GOSUB 2240:GOTO 1720 1850 IF P(RW,C)< > D1AND P(RW,C)< > D2THEN GOSUB 2220:GOTO 1720 1860 IF F5= 1AND P(RW,C)< > D2THEN GOSUB 2220:GOTO 1720 1870 IF F5= 2AND P(RW,C)< > D1THEN GOSUB 2220:GOTO 1720 1880 F3= 0:GOSUB 2400:IF F3THEN GOSUB 2260:GOTO 1720 1890 GOSUB 2480:IF F3THEN GOSUB 2260:GOTO 1720 1900 X1= C* 4+ 12:Y1= RW* 3+ 11:IF D1= D2THEN 1930 1910 IF P(RW,C)= D1THEN F5= 1:GOTO 1930 1920 F5= 2 1930 P(RW,C)= MA:W= MA:GOSUB 680 1940 IF MA> 4THEN SM= SM- 1:GOSUB 660 1950 ON MAGOSUB 1960,1970,1980,1990,2000,2010:GOTO 1450 1960 GOSUB 2020:GOSUB 2040:RETURN 1970 GOSUB 2020:GOSUB 2050:RETURN 1980 GOSUB 2040:GOSUB 2030:RETURN 1990 GOSUB 2030:GOSUB 2050:RETURN 2000 GOSUB 2040:GOSUB 2050:RETURN 2010 GOSUB 2020:GOSUB 2030:RETURN 2020 T1= P(RW- 1,C):GOSUB 2060:P(RW- 1,C)= 0:RETURN 2030 T1= P(RW+ 1,C):GOSUB 2060:P(RW+ 1,C)= 0:RETURN 2040 T1= P(RW,C- 1):GOSUB 2060:P(RW,C- 1)= 0:RETURN 2050 T1= P(RW,C+ 1):GOSUB 2060:P(RW,C+ 1)= 0:RETURN 2060 IF T1< 7OR T1= 10THEN RETURN 2070 IF T1= 63THEN T1= 1 2080 IF T1= 55THEN T1= 2 2090 IF T1= 23THEN T1= 3 2100 IF T1= 7THEN T1= 4 2110 IF T1= 31THEN T1= 5 2120 IF T1= 15THEN T1= 6 2130 CR(T1)= CR(T1)- 1:RETURN 2140 REM 2150 PLOT 3,1,15:PRINT "*************":PRINT :RETURN 2160 PRINT :PRINT " *************":PLOT 3,64,0:RETURN 2170 GOSUB 2150:PRINT " SQUARE"NB;" IS":PRINT " NOT ELIGIBLE" 2180 GOSUB 2160:FOR J= 1TO 1500:NEXT 2190 PLOT 3,0,15:FOR J= 1TO 11:PRINT SPC( 15)"":NEXT :RETURN 2200 GOSUB 2150:PRINT " YOU'RE OUT":PRINT " OF STRAIGHT" 2210 PRINT " MARKERS":GOTO 2180 2220 GOSUB 2150:PRINT " SQUARE"NB;" IS":PRINT " THE WRONG" 2230 PRINT " COLOR":GOTO 2180 2240 GOSUB 2150:PRINT " SQUARE"NB;" IS":PRINT " OCCUPIED" 2250 GOTO 2180 2260 GOSUB 2150:PRINT " NO MARKER":PRINT " MAY BE NEXT" 2270 PRINT " TO ANY OTHER":PRINT " MARKER UNLESS" 2280 PRINT " THEIR LINES":PRINT " JOIN UP":GOSUB 2160 2290 FOR J= 1TO 2500:NEXT :GOTO 2190 2300 RESTORE 2380:R= FN A(5):FOR J= 1TO R:READ R$:NEXT 2310 PLOT 6,5,3,1,14:PRINT R$:PRINT " THERE AREN'T" 2320 PRINT " ENOUGH SQUARES":PRINT " OF THE PROPER" 2330 PRINT " COLORS LEFT":PRINT :PRINT "***GAME OVER***" 2340 PLOT 3,3,22:PRINT "CARE FOR":PRINT " ANOTHER" 2350 INPUT " GAME? ";A$:IF LEFT$ (A$,1)= "Y"THEN PLOT 12:GOTO 170 2360 IF LEFT$ (A$,1)< > "N"THEN PLOT 3,0,24:PRINT SPC( 15)"":PLOT 3,0,24:GOTO 2350 2370 LOAD "MENU":RUN 2380 DATA "TOUGH LUCK!","TOO BAD!","THAT'S ALL!","OH! OH!","BAD NEWS!" 2390 REM ERROR CHECK 1 2400 F4= 0 2410 IF P(RW- 1,C)> 0AND P(RW- 1,C)< 7THEN F4= F4+ 1 2420 IF P(RW+ 1,C)> 0AND P(RW+ 1,C)< 7THEN F4= F4+ 1 2430 IF P(RW,C- 1)> 0AND P(RW,C- 1)< 7THEN F4= F4+ 1 2440 IF P(RW,C+ 1)> 0AND P(RW,C+ 1)< 7THEN F4= F4+ 1 2450 IF F4> 2THEN F3= - 1 2460 RETURN 2470 REM ERROR CHECK 2 2480 ON MAGOTO 2500,2550,2600,2650,2700,2750 2490 RETURN 2500 IF P(RW,C+ 1)= 3OR P(RW,C+ 1)= 5OR P(RW,C+ 1)= 1THEN F3= - 1 2510 IF P(RW+ 1,C)= 2OR P(RW+ 1,C)= 6OR P(RW+ 1,C)= 1THEN F3= - 1 2520 IF P(RW- 1,C)> 0AND P(RW- 1,C)< 7THEN F3= - 1 2530 IF P(RW,C- 1)> 0AND P(RW,C- 1)< 7THEN F3= - 1 2540 RETURN 2550 IF P(RW,C- 1)= 4OR P(RW,C- 1)= 5OR P(RW,C- 1)= 2THEN F3= - 1 2560 IF P(RW+ 1,C)= 1OR P(RW+ 1,C)= 6OR P(RW+ 1,C)= 2THEN F3= - 1 2570 IF P(RW- 1,C)> 0AND P(RW- 1,C)< 7THEN F3= - 1 2580 IF P(RW,C+ 1)> 0AND P(RW,C+ 1)< 7THEN F3= - 1 2590 RETURN 2600 IF P(RW- 1,C)= 4OR P(RW- 1,C)= 6OR P(RW- 1,C)= 3THEN F3= - 1 2610 IF P(RW,C+ 1)= 1OR P(RW,C+ 1)= 5OR P(RW,C+ 1)= 3THEN F3= - 1 2620 IF P(RW,C- 1)> 0AND P(RW,C- 1)< 7THEN F3= - 1 2630 IF P(RW+ 1,C)> 0AND P(RW+ 1,C)< 7THEN F3= - 1 2640 RETURN 2650 IF P(RW- 1,C)= 3OR P(RW- 1,C)= 6OR P(RW- 1,C)= 4THEN F3= - 1 2660 IF P(RW,C- 1)= 2OR P(RW,C- 1)= 5OR P(RW,C- 1)= 4THEN F3= - 1 2670 IF P(RW+ 1,C)> 0AND P(RW+ 1,C)< 7THEN F3= - 1 2680 IF P(RW,C+ 1)> 0AND P(RW,C+ 1)< 7THEN F3= - 1 2690 RETURN 2700 IF P(RW- 1,C)= 3OR P(RW- 1,C)= 4OR P(RW- 1,C)= 6THEN F3= - 1 2710 IF P(RW+ 1,C)= 1OR P(RW+ 1,C)= 2OR P(RW+ 1,C)= 6THEN F3= - 1 2720 IF P(RW,C- 1)> 0AND P(RW,C- 1)< 7THEN F3= - 1 2730 IF P(RW,C+ 1)> 0AND P(RW,C+ 1)< 7THEN F3= - 1 2740 RETURN 2750 IF P(RW,C- 1)= 2OR P(RW,C- 1)= 4OR P(RW,C- 1)= 5THEN F3= - 1 2760 IF P(RW,C+ 1)= 1OR P(RW,C+ 1)= 3OR P(RW,C+ 1)= 5THEN F3= - 1 2770 IF P(RW- 1,C)> 0AND P(RW- 1,C)< 7THEN F3= - 1 2780 IF P(RW+ 1,C)> 0AND P(RW+ 1,C)< 7THEN F3= - 1 2790 RETURN