5 POKE53280,7:POKE53281,7 10 PRINT"[147]=*= HEURISTIC CHOMP =*=":RUN5700 300 IFA(U,V)THENGOSUB7000:RETURN 310 IFV=1THENX=W 320 V=L:RETURN 600 IFPTHENPRINT"[154]  MY MOVE [146] " 610 U=X:V=Y:FORC=.TO7:POKE646,C:PRINT"";:GOSUB300:A(U,V)=-1:NEXT 620 FORU=XTOW:FORV=YTOL:GOSUB300:NEXT:NEXT:RETURN 900 IFI+J+RND(.)*L*(null)>STHENX=I:Y=J:S=I+J+RND(.)*L*(null) 910 RETURN 1200 IFA(I,J)THENGOSUB900:RETURN 1210 IFI=1THENJ=L 1220 I=W:RETURN 1500 S=.:FORJ=1TOL:FORI=1TOW:GOSUB1200:NEXT:NEXT:GOSUB600:RETURN 1800 FORE=.TO1STEP.:IFS>T(N)THENIFN.4THENGOSUB2700:IFFTHENGOSUB1500:RETURN 3310 PRINT"[152] T H I N K I N G " 3320 X=.:N=. 3325 FORI=1TOW:FORJ=1TOL:GOSUB3000:NEXT:NEXT:IFX>.THENGOSUB600:RETURN 3330 GOSUB1500:RETURN 3600 PRINT"[144] -->  YOUR MOVE [146] <-- " 3610 FORE=.TO1STEP.:WAIT56321,16,16 3615 X=INT((PEEK(53248)-8)/32)+PEEK(53264)*8 3620 IFX<.THENNEXT 3630 IFX>WTHENNEXT 3640 Y=INT((PEEK(53249)-66)/16):IFY<.THENNEXT 3650 IFY>H-1THENNEXT 3660 E=-A(X,Y):NEXT 3665 PRINT" ":GOSUB600:RETURN 3900 S=T(N):T(N)=T(M):T(M)=S:IFN>RTHENN=N-R*2 3910 RETURN 4200 IFPTHENPRINT"[156] I WIN ... PLEASE WAIT":RETURN 4210 PRINT"[156] YOU WIN ... PLEASE WAIT":RETURN 4500 GOSUB4200:S(P)=S(P)+1:S$=STR$(S(.))+" WIN":IFS(.)-1THENS$=S$+"S" 4510 S$=S$+" "+STR$(S(1))+" LOSS":IFS(1)-1THENS$=S$+"ES" 4520 FORE=.TO1STEP.:IFLEN(S$)<34THENS$=S$+" " 4530 IFLEN(S$)<34THENS$=" "+S$ 4540 E=-(LEN(S$)>=34):NEXT:PRINTY$"=*="S$"=*="; 4550 IFP=1THENW=W-2:IFW<1THENW=H:L=L-2:IFL<.THENL=. 4560 FORC=1TOC(P):FORN=.TOT:IFM(P,C)=T(N)THENT(N)=T(T):N=T:IFTTHENT=T-1 4570 NEXT:NEXT:P=1-P:FORC=1TOC(P):F=-1:FORN=.TOT:IFM(P,C)=T(N)THENF=.:N=T 4580 NEXT:IFFTHENT=T+1:T(T)=M(P,C) 4590 NEXT:R=T:FORE=.TO1STEP.:R=INT(R/2):R=R-(INT(R/2)=R/2) 4600 FORB=1TOR:FORN=BTOT-RSTEPR:M=N+R:IFM<=TTHENIFT(N)>T(M)THENGOSUB3900 4610 NEXT:NEXT:E=-(R=1):NEXT:P=2:RETURN 4800 IFA(U,V)THENS=S+D:RETURN 4810 IFV=1THENU=W 4820 V=L:RETURN 5100 IFA(1,1)=.THENPOKE53269,1:GOSUB4500:RETURN 5110 S=.:D=1:FORU=1TOW:FORV=1TOL:GOSUB4800:NEXT:D=D*10:NEXT:C(P)=C(P)+1 5120 M(P,C(P))=S 5125 GOSUB2400:C(P)=C(P)+1:M(P,C(P))=S:ONP+1GOSUB3600,3300:RETURN 5400 PRINT"[144]LEFT BUTTON TO CONTINUE -- RIGHT TO QUIT" 5410 FORE=-1TO.STEP.:E=PEEK(56321)=255:NEXT:IFPEEK(56321)=239THENRETURN 5420 POKE53269,.:LOAD"MENU",8 5700 FORA=.TO53288:READN:IFN>255THENA=N:READN 5710 POKEA,N:NEXT:SYS49408:Y$="" 5720 PRINT"[151] MAXIMUM HEIGHT (4-9)? "; 5730 FORE=.TO1STEP.:GETK$:H=VAL(K$):E=-(H>3ANDH<10):NEXT:PRINTK$ 5740 PRINTY$"=*= POINT AND CLICK LEFT =*=" 5750 PRINT"[155] FROM 'COMMODORE MAGAZINE' JUNE 1988[145]"; 5760 DIMA(9,8),T(666),M(1,72),C(1),S(1):T(.)=1:L=2:POKE53269,1 6000 IFL=HTHENGOSUB5400:L=INT(H/3)+1 6010 FORW=L+1TOH+(L<5)*(H-L*2) 6020 POKE53269,3:PRINT"[149]":FORJ=1TOL:FORI=1TOW:A(I,J)=-1 6030 PRINTLEFT$(Y$,J*2+3)TAB(I*4-2)"[176][192][192][174][157][157][157][157][173][192][192][189]" 6040 NEXT:NEXT:C(.)=.:C(1)=.:FORP=.TO2:IFP=2THENP=. 6050 GOSUB5100:NEXT:NEXT:L=L+1:GOTO6000 6300 DATA896,252,,,248,,,240,,,248,,,220,,,142,,,7,,,3,,,,,,,,,,,,,,,,,, 6310 DATA,,,,,,,,,,,,,,,,,,,,,,, 6320 DATA,252,,49,254,48,49,252,56,251,191,124,221,50,224,10,49,64,3,207, 6330 DATA1,206,,,180,,1,74,,2,252,,3,2,,7,7,,124,3,224 6340 DATA24,1,192,24,1,128,,,,,,,,,,,,,,,,2040,14,15 6350 DATA49408,173,21,3,201,193,240,25,8,120,173,20,3 6355 DATA141,,192,173,21,3,141,1 6360 DATA192,169,33,141,20,3,169,193 6365 DATA141,21,3,40,96,216,173,25,212,172,2,192 6370 DATA32,88,193,140,2,192,24,109,,208,141,,208,138,105,,41,1,77,16 6380 DATA208,141,16,208,173,26,212,172,3,192,32 6385 DATA88,193,140,3,192,56,73,255,109 6390 DATA1,208,141,1,208,108,,192,140,5,192,141,4,192,162,,56,237,5,192 6400 DATA41,127,201,64,176,7,74,240,18,172,4,192,96,9,192,201,255,240,8,56 6410 DATA106,162,255,172,4,192,96,169,,96 6420 DATA53248,129,107,46,83,53264,,53280,,7,53287,1,1 7000 PRINTLEFT$(Y$,V*2+3)TAB(U*4-2)" [157][157][157][157] ":A(U,V)=.:RETURN