10 IFL=0THENL=1:LOAD"TRI.ML",8,1 20 IFL=1THENL=2:LOAD"TRI.FNT",8,1 30 POKE52,128:POKE56,128:CLR:GOSUB1310:GOSUB1010:GOSUB1110:GOSUB810:GOSUB1210 40 GOSUB1260:SYSCLEAR:QN=NT:IFF<>0THEN60 50 GOSUB1610:IFE<0THEN70 51 IFE>0THEN60 55 GOSUB1510:QN=QN-1:IF(E<>0)OR(QN=0)THEN80 60 GOSUB2010:QN=QN-1:IF(E=0)AND(QN<>0)THEN50 70 POKE646,GC:PRINTD$;:POKE646,FG:PRINT"]]I[157][157][157]]WON";:GOTO90 80 POKE646,GC:PRINTD$;:POKE646,FG:PRINT"]YOU[157][157][157][157]]WON"; 90 FORI=1TO2000:NEXT:GOSUB1110:GOSUB610:GOSUB1210:GOTO40 500 REM PRINT OPTIONS SCREEN 510 POKE646,FG:PRINT"[147]<::::::::::::::::::::::::::::::::=" 515 PRINT";]]]]]]]]]SELECT]OPTIONS]]]]]]]]];" 520 PRINT";]]]]]]]]]]]]]]]]]]]]]]]]]CURRENT;" 525 PRINT";]F1]]CHANGE]SIZE]]]]]]]]]]]]";CHR$(48+SI);"]]];" 530 PRINT";]F2]]LIST]INSTRUCTIONS]]]]]]]]]];" 535 PRINT";]F3]]CHANGE]COLOR]SCHEME]]]]]]]];" 540 PRINT";]F4]]CHANGE]WHO]STARTS]]]]]"; 545 IFF=0THENPRINT"YOU]];" 550 IFF=1THENPRINT"ME]]];" 555 PRINT";]F5]]CHANGE]STRATEGY]]]]]]"; 560 IFL2=L1THENPRINT"]OPEN];" 565 IFL2<>L1THENPRINT"CLOSED;" 570 PRINT";]F7]]PLAY]GAME]]]]]]]]]]]]]]]]]];" 575 PRINT";]F8]]RETURN]TO]LOADSTAR]]]]]]]]];" 580 PRINT">::::::::::::::::::::::::::::::::?" 585 RETURN 600 REM GET OPTIONS 610 GOSUB510 615 GETA$:IFA$=""THEN615 620 A=ASC(A$):IFA=137THENGOSUB3010:GOTO610 625 IFA=133THENSI=SI-1-4*(SI=4):POKEL1,SI-1:SYSRESIZE:NT=SI*(SI+1)/2:GOTO610 630 IFA=134THENGOSUB710:GOTO610 635 IFA=138THENF=1-F:GOTO610 640 IFA=135THENL2=L2+2+4*(L2>=L3):GOTO610 645 IFA=136THENRETURN 650 IFA<>140THEN610 655 GOSUB1410:POKE52,160:POKE56,160:CLR 660 OPEN15,8,15,"R0:HELLO CONNECT=HELLO CONNECT":INPUT#15,ER%:CLOSE15 665 IFER%<>63THENEND 670 LOAD"HELLO CONNECT",8 700 REM SET COLORS 710 READBG:IFBG<0THENRESTORE:READBG 720 READFG,DF,GC,TC(1),TC(2),TC(3),TC(4):POKE53280,BG:POKE53281,BG 730 POKE53282,GC:POKE646,GC:FORZ=0TO27:C(Z)=DF:NEXT:RETURN 740 DATA 0, 1,11, 4, 7, 7, 7, 7 750 DATA 5, 1,11,13, 0, 0, 0, 0 760 DATA 0, 1,14,12, 1, 6, 5, 2 770 DATA11, 1, 0,12,15,15,15,15 780 DATA 6, 0, 3,14, 1, 1, 1, 1 785 DATA 2, 7,10, 8, 1, 1, 1, 1 790 DATA -1 800 REM TITLE SCREEN 810 SI=5:GOSUB1210:PRINT"" 820 PRINT"<::::::::::::::::::::::::::::::::::=" 830 PRINT";]TRIANGULATION]]BY]DAVE]JOHANNSEN];" 840 PRINT";]@]1990]]PUBLISHED]ON]LOADSTAR]72];" 850 PRINT";]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]];" 860 PRINT";]]]]]]PRESS]ANY]KEY]TO]BEGIN]]]]]];" 870 PRINT">::::::::::::::::::::::::::::::::::?" 880 GETA$:IFA$<>""THENSI=7:GOSUB610:RETURN 890 POKEG(K1),39:POKEG(K2),39:POKEG(K3),39 900 J=INT(RND(1)*34):POKEL1,J:SYSRESIZE+3 910 J=INT(RND(1)*4+1):K1=PEEK(L1+1):K2=PEEK(L1+2):K3=PEEK(L1+3) 920 POKEH(K1),TC(J):POKEG(K1),J+43:POKEH(K2),TC(J):POKEG(K2),J+43 930 POKEH(K3),TC(J):POKEG(K3),J+43:FORJ=1TO400:NEXT:GOTO880 1000 REM INITIALIZE VARS 1010 CLEAR=49152:SET=49155:MOVE=49158:RESIZE=49161:L1=49167:L2=L1:L3=49169 1020 SIZE=7:DIMG(28),S(28),D(28),C(28),H(28):NT=SI*(SI+1)/2 1030 Z=0:FORY=1TO7:FORX=1TOY:G(Z)=34829+118*Y+4*X:D(Z)=Z+1:Z=Z+1:NEXTX,Y 1040 FORZ=0TO27:C(Z)=DF:H(Z)=G(Z)+20480:NEXT:GOSUB710 1050 D$="<::::::=[157][157][157][157][157][157][157][157]" 1060 D$=D$+";]]]]]];[157][157][157][157][157][157][157][157];]]]]]];[157][157][157][157][157][157][157][157];]]]]]];[157][157][157][157][157][157][157][157];]]]]]];[157][157][157][157][157][157]" 1070 D$=D$+"[157][157]>::::::?[157][157][157][157][157][157][157][145][145][145][145]":RETURN 1100 REM RESET SYMBOL ARRAY 1110 FORZ=0TO27:S(Z)=D(Z):C(Z)=DF:NEXT:RETURN 1200 REM DRAW SCREEN 1210 A$="<:":B$=";!":C$=">:" 1215 FORY=1TOSI:A$=A$+"::::":B$=B$+"!!!!":C$=C$+"::::":NEXT 1220 A$=A$+"=":B$=B$+";":C$=C$+"?":POKE646,GC:PRINT"[147]"; 1225 PRINTTAB(14-2*SI);A$:FORY=3*SI+2TO1STEP-1:PRINTTAB(14-2*SI);B$:NEXT 1230 PRINTTAB(14-2*SI);C$;"":S$="#$%[157][157][157]&'([157][157][157])*+[145][145]" 1235 FORY=1TOSI:PRINTTAB(16-2*Y);:FORX=1TOY:PRINTS$;:NEXT:PRINT"":NEXT:RETURN 1250 REM DRAW MENU 1260 FORZ=SI*(SI+1)/2-1TO0STEP-1:POKEG(Z),S(Z):POKEH(Z),C(Z):NEXT 1265 PRINT"";TAB(33);"<::::=":FORZ=1TO4:PRINTTAB(33);";!#$%;" 1270 PRINTTAB(33);";]&";:POKE34810+120*Z,112+Z:POKE55290+120*Z,BG 1275 POKE646,TC(Z):PRINTCHR$(43+Z);:POKE646,GC:PRINT"(;" 1280 PRINTTAB(33);";!)*+;":NEXT:PRINTTAB(33);">::::?":RETURN 1300 REM SWITCH TO NEW FONT 1310 POKE56578,PEEK(56578)OR3:POKE56576,(PEEK(56576)AND252)OR1:POKE53272,32 1320 POKE648,136:PRINT"[147]";:POKE53265,PEEK(53265)OR64:RETURN 1400 REM SWITCH BACK TO NORMAL FONT 1410 POKE56578,PEEK(56578)OR3:POKE56576,PEEK(56576)OR3:POKE53272,20:POKE648,4 1420 POKE53280,0:POKE53281,0:PRINT"[144][147]";:POKE53265,PEEK(53265)AND191:RETURN 1500 REM PLAY TOKEN T IN SQUARE S. E SET IF END OF GAME 1510 IFS<0THENRETURN 1515 S(S)=43+T:C(S)=TC(T):POKEG(S),S(S):POKEH(S),C(S) 1520 POKEL1,S:POKEL1+1,T:SYSSE:E=PEEK(L1):IFE=0THENRETURN 1530 W1=PEEK(L1+1):W2=PEEK(L1+2):W3=PEEK(L1+3) 1540 FORZ=0TONT-1:IF(Z<>W1)AND(Z<>W2)AND(Z<>W3)THENPOKEG(Z),39 1550 NEXT:E=1:RETURN 1600 REM GET PLAYERS MOVE 1610 S=-1:T=-1:E=0 1620 POKE646,GC:PRINTD$;:POKE646,FG 1625 IF(S>=0)AND(T>0)THENPRINT"PRESS[157][157][157][157][157]RETURN";:GOTO1660 1630 PRINT"SELECT[157][157][157][157][157][157]"; 1640 IFT<0THENPRINT"TOKEN[157][157][157][157][157]";:IFS<0THENPRINT"AND[157][157][157][157]"; 1650 IFS<0THENPRINT"SQUARE"; 1660 GETA$:IFA$=""THEN1660 1670 A=ASC(A$):IF(A>48)AND(A<53)THEN1710 1680 IF(A>64)AND(A<91)THEN1730 1690 IF(A>55)AND(A<58)THENA=A+35:GOTO1730 1695 IFA=140THENE=-1:RETURN 1696 IFA=168THENE=1:RETURN 1700 ON2+(A=13)GOTO1760,1660 1710 IFT>-1THENPOKE55292+120*T,TC(T) 1720 T=A-48:POKE55292+120*T,FG:GOTO1620 1730 A=A-65:IF(A>=NT)OR(S(A)>29)THEN1620 1740 IFS>-1THENPOKEH(S),DF 1750 S=A:POKEH(S),FG:GOTO1620 1760 IF(S<0)OR(T<0)THEN1660 1770 POKE55292+120*T,TC(T):POKEH(S),DF:POKE646,GC:PRINTD$;"";:RETURN 2000 REM MACHINES MOVE 2010 SYSMOVE:T=PEEK(L2):S=PEEK(L2+1):GOSUB1510 2020 FORI=1TO20:POKEH(S),FG:FORJ=1TO50:NEXT:POKEH(S),C(S):FORJ=1TO50:NEXTJ,I 2030 RETURN 3000 REM HELP MESSAGE 3010 POKE646,GC:PRINT"[147]" 3015 PRINT"<::::::::::::::::::::::::::::::::::::="; 3016 PRINT";]]]]]]]]]]]TRIANGULATION]]]]]]]]]]]];"; 3017 PRINT";]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]];"; 3018 PRINT";]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]];"; 3020 PRINT";]1]]WE]ALTERNATE]PLAYING]ON]A]]]]]]];"; 3025 PRINT";]]]]TRIANGULAR]MAT]]]]]]]]]]]]]]]]]];"; 3026 PRINT";]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]];"; 3030 PRINT";]2]]WE]CAN]PLACE]ANY]TOKEN]ON]THE]]];"; 3035 PRINT";]]]]MAT]]]]]]]]]]]]]]]]]]]]]]]]]]]]];"; 3036 PRINT";]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]];"; 3040 PRINT";]3]]WHOEVER]FORMS]AN]EQUILATERAL]]]];"; 3045 PRINT";]]]]TRIANGLE]WINS]]]]]]]]]]]]]]]]]]];"; 3046 PRINT";]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]];"; 3050 PRINT";]4]]AN]EQUILATERAL]TRIANGLE]HAS]3]]];"; 3055 PRINT";]]]]EQUAL]LENGTH]SIDES]]]]]]]]]]]]]];"; 3056 PRINT";]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]];"; 3060 PRINT";]5]]F8]TERMINATES]THE]GAME]]]]]]]]]];"; 3066 PRINT";]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]];"; 3067 PRINT";]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]];"; 3070 PRINT";]]]]]]THAT]DOESNT]SOUND]SO]HARD]]]]];"; 3076 PRINT";]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]];"; 3080 PRINT";]]]]]]PRESS]ANY]KEY]TO]CONTINUE]]]]];"; 3090 PRINT">::::::::::::::::::::::::::::::::::::?"; 3100 GETA$:IFA$=""THEN3100 3110 RETURN 10000 OPEN15,8,15,"I0":PRINT#15,"S0:TRIANGULATION":CLOSE15:SAVE"TRIANGULATION",8