10 REM COPYRIGHT 1988 COMPUTE! PUBL., INC. - ALL RIGHTS RESERVED 20 DIMR,P,N,H,L,T,X,Y,A,B,C,N$(4):S=53248:POKES+21,0:POKES+32,6:POKES+24,21 30 X$="[214][206][205][206][214][205][206][205][218][206][205]":FORR=1TO4:X$=X$+X$:READN$(R):NEXT:F=256:CO=7:GOSUB1210 40 LN=214:YS=679:DIMH(11,2),B(11,2),P(2),C(2) 50 REM*** ENTER ML DATA *** 60 FORR=YSTOR+25:READP:POKER,P:T=T+P:NEXT 70 FORP=0TO2:B(0,P)=1:B(11,P)=1:H(11,P)=65:NEXT:W=828:R=RND(-RND(-TI)) 80 DEFFNV(T)=INT((T-H(L,P))/(H(H,P)-H(L,P))*(H-L-1)+L+1) 90 DEFFNL(P)=(P+(P=0)OR(P>PN))*6+11-2*PN:DEFFNP(P)=(2=PORPORGNAND1)-1 100 REM *** CLEAR CASSETTE BUFFER *** 110 POKE1023,0:POKE781,1:POKE782,191:POKE91,3 120 POKE90,65:POKE89,3:POKE88,64:SYS41964 130 REM *** DRAW SPRITE *** 140 FORR=832TOR+35STEP6:READX,Y:FORP=RTOR+3STEP3:POKEP,X:POKEP+1,Y:NEXTP,R 150 POKES+23,10:POKES+28,10:POKES+29,10:POKES+37,8:POKES+38,0:POKES+39,7 160 POKES+40,2:POKES+41,7:POKES+42,2:POKES+4,174:POKES+6,174 170 POKE2040,14:POKE2041,13:POKE2042,15:POKE2043,13 180 REM *** NUMBER TILES *** 190 FORR=1TO64:DK$=DK$+CHR$(R):NEXT 200 REM *** GET SELECTION FROM MENU *** 210 POKE198,0 220 GETD$:IFD$=""THEN220 230 IFD$="[136]"THENCO=7-CO:GOSUB1260:GOTO210 240 IFD$=CHR$(13)THEND$="4":GOTO270 250 IFD$="0"THENIFGMTHEN300 260 IFD$<"1"ORD$>"4"THEN210 270 G=0:GM=0:GN=VAL(D$):PN=1-(GN>2):N$(0)=N$(ABS(GN-2)+2) 280 M=146-16*PN:POKES+5,M+5:POKES+7,M+5:FORR=0TOPN:P(R)=0:NEXT 290 REM *** DEAL HANDS *** 300 GOSUB1340:D=64:FORP=0TOPN:POKELN,FNL(P):PRINT 310 PRINT"[145][154]"N$(P)TAB(80-LEN(STR$(P(P))));MID$(STR$(P(P)),2):FORR=1TO10 320 GOSUB1030:H(R,P)=T:B(R,P)=0:PRINT"[129][146][161][158]";:IFFNP(P)THENPOKE646,CO 330 PRINTRIGHT$(STR$(T),2)"[161][157][157][157][157][129][187][146][162][162][172][145][145][157][157][157][157][129][190][162][162][188]";:NEXTR,P:HM=11:P=G 340 GOSUB1020:GOSUB1310:GOSUB1170:FORP=0TOPNSTEP2:L=0:H=11:GOSUB1060:NEXT:P=G 350 REM *** MAIN LOOP *** 360 P=-(P+1)*(P"9")ANDD$<>" "THEN390 400 IFD$<>" "THEN430 410 GOSUB1020:GOSUB1160:POKE198,0 420 GETD$:IF(D$<"0"ORD$>"9")ANDD$<>" "THEN420 430 GOSUB1330:IFD$=" "THENPOKES+21,3:GOSUB1310:GOTO360 440 N=VAL(D$)-10*(D$="0"):PRINT"[158]":GOTO510 450 REM *** GET COMPUTER'S MOVE *** 460 GOSUB740:IFB(N,P)-1ORETHEN490 470 GOSUB1020:GOSUB1160:GOSUB740:IFB(N,P)-1ORETHEN490 480 R=(N=L)-(N=H):IFRTHENIFABS(T-H(N,P))=FTHENX=X-F:POKEW+2,3 530 NEXT:POKELN,FNL(P):IFFNP(P)THENPOKE646,CO 540 PRINT:PRINTTAB(4*N+37)RIGHT$(STR$(T),2):R=H(N,P):H(N,P)=T:T=R 550 FORR=1TO9:IFH(R,P)PNTHENG=0 640 POKE646,14:FORR=0TOPN:Y=0:D=7:IFP=RTHEND=1 650 FORX=55377+FNL(R)*40TOX+39STEP4:Y=Y+1:IFY>C(R)THEND=11 660 POKEX,D:POKEX+1,D:NEXTX:P(R)=P(R)+C(R)*5 670 POKELN,FNL(R):PRINT:PRINT"[145]"SPC(40-LEN(STR$(P(R))))MID$(STR$(P(R)),2):NEXTR 680 POKELN,FNL(1)+4:PRINT:PRINTTAB(6)"[159]PRESSANYKEY;[F1]FORMENU":POKEW+2,3 690 POKE198,0 700 GETD$:IFD$=""THEN700 710 IFD$="[133]"THENGOSUB1210:GOTO210 720 GOTO300 730 REM *** SBR: CHOOSE BEST PLAY *** 740 N=INT(T/6.5+1):IFB(N,P)THEN920 750 FORL=N-1TO1STEP-1:IFB(L,P)-1THENNEXT 760 IFTH(H,P)THENN=H:GOTO920 790 N=FNV(T):IFH-L<4ORT-H(L,P)<6ORH(H,P)-T<6THENRETURN 800 B=0:Y=L:HM=H:X=N:C=0 810 H=E+X:IFB(H,P)THEN870 820 A=H(H,P):IFC=0THENH(H,P)=T 830 B(H,P)=1:GOSUB1060:H=E+X:L=0 840 FORR=Y+1TOHM-1:L=L+B(R,P):NEXT:H(H,P)=A:A=BH(HM,P)THEN910 890 IFH(N,P)-H(Y,P)<4*(N-Y-1)ORH(HM,P)-H(N,P)<4*(HM-N-1)THEN910 900 IFABS(T-H(N,P))<(H(HM,P)-H(L,P))/(HM-L-1)THENC=B:X=N-1:H=N:B=B-1:GOTO820 910 FORR=Y+1TOHM-1:B(R,P)=B(R,1):NEXT:IFC=0ORBH(H,P)THENN=H+1:GOTO750 960 FORN=LTOH:IFT>H(N,P)THENNEXT 970 IFL=0THEN990 980 N=N+(N-L<=H-NORH>9):IFN=H=L-HTHENN=N+(H(N-1,P)=HMTHENRETURN 1080 FORL=RTOHM-2:IFB(L+1,P)THENNEXT:RETURN 1090 FORR=L+1TOHM-1:IFB(R,P)-1THENNEXT 1100 H=R:GOTO1060 1110 REM *** SBR: CHANGE NUMBERS IN SPRITE *** 1120 A=S+8*ASC(RIGHT$(STR$(T),2)):B=S-A+8*(ASC(RIGHT$(STR$(T),1))):C=921 1130 POKE56333,127:POKE1,251:FORR=ATOA+7:POKEC,PEEK(R) 1140 POKEC+1,PEEK(R+B):C=C+3:NEXT:POKE1,255:POKE56333,129:RETURN 1150 REM *** SBR: MOVE TILE ONTO SCREEN *** 1160 FORR=1TO10:POKEW,R/2+168:POKEW+1,R/2+M:SYSYS:NEXT:POKES+21,12 1170 POKEW+1,M:POKEW,225:POKEW+2,3:SYSYS:POKES+21,PEEK(S+21)OR3 1180 POKE198,0:GOSUB1110:A=244:FORR=1TO90:A=A+2:IFA=FTHENPOKEW+2,0:A=0 1190 POKEW,A:SYSYS:NEXT:RETURN 1200 REM *** SBR: PRINT MENU SCREEN *** 1210 GOSUB1340:PRINT""LEFT$("[159][0]CONTINUECURRENTGAME",SGN(GM)*30) 1220 PRINT"[158][1]PLAYERVSPLAYER" 1230 PRINT"[2]PLAYERVSCOMPUTER" 1240 PRINT"[3]PLAYERVSPLAYERVSCOMPUTER" 1250 PRINT"[4]PLAYERVSCOMPUTERVSCOMPUTER" 1260 PRINT"":PRINTTAB(8)"[159]TO"MID$("SHOW HIDE",CO+1,4); 1270 PRINT"COMPUTER'STILES,":PRINTTAB(7)"PUSH[F7]BEFORESELECTION." 1280 PRINTTAB(3)"COPYRIGHT1988COMPUTE!PUB.,INC." 1290 PRINTTAB(10)"ALLRIGHTSRESERVED[145]":RETURN 1300 REM *** SBR: PRINT GUIDE *** 1310 POKELN,FNL(P+1)+1:PRINT:PRINT"[154][169]1[146]"; 1320 PRINT"[169][169]2[146][169][169]3[146][169][169]4[146][169][169]5  6[223][146][223]7[223][146][223]8[223][146][223]9[223][146][223]0[223][145]";:RETURN 1330 PRINT"[146]"MID$(X$,7*FNL(P)-4,40)"[158]";:RETURN 1340 POKES+17,43:PRINT"[147]"X$X$X$X$X$LEFT$(X$,118)"[206][157][148][218][146]", 1350 PRINT"[157]MOSAIC":POKES+33,0:POKES+17,27:RETURN 1360 DATA"PLAYER1","COMPUTER1","PLAYER2","COMPUTER2" 1370 DATA173,17,208,16,251,160,2,185,59,3,153,255,207 1380 DATA153,1,208,136,208,244,173,62,3,141,16,208,96 1390 DATA21,88,95,250,127,254,127,254,95,250,26,168