home *** CD-ROM | disk | FTP | other *** search
- 1 ifa=0thenpoke53265,11:a=1:load"boggle.ml",8,1
- 2 poke56578,63:poke56576,196:poke53272,18:poke648,196:gosub96:poke788,52
- 3 print"[147]"chr$(14)chr$(8):poke53280,0:poke53281,0:gosub112
- 4 ifhs>fhthenfh=hs
- 5 print""tab(11)"[159]high score: ";:a$=str$(fh):z=7:gosub204:printc$
- 6 printtab(14)"[211][212][213][214][215][216][217][218][219][220][221][255]":printtab(14)"[223][160][161][162][163][164][165][166][167][168][173][174]"
- 7 printtab(12)"copyright @ 1992":printtab(12)"[158]compute magazine"
- 8 printtab(8)"written by john cameron":poke53265,27
- 9 iffh=0then16
- 10 gosub205:a$(0)="yes":a$(1)="no ":yn=0
- 11 printleft$(dw$,22)tab(8)"use the same players: [159]"a$(yn)
- 12 gosub82:a=yn-(jr=8andyn<1)+(jl=4andyn>0):iffb=0thenyn=a:goto15
- 13 ifa=ynthen12
- 14 yn=a:goto11
- 15 ifyn=0then32
- 16 gosub205:pl=0
- 17 printleft$(dw$,22)tab(10)"number of players:[159]";pl
- 18 gosub82:p=pl-(jr=8andpl<4)+(jl=4andpl>0):iffb=0thenpl=p:goto21
- 19 ifp=plthen18
- 20 pl=p:goto17
- 21 ifpl=0then32
- 22 fork=1topl:gosub205:in$="":ct=0
- 23 printleft$(dw$,22)tab(4)"enter name of player"k"[157]: ";:gosub25
- 24 pl$(k)=left$(in$+" ",8):next:goto32
- 25 print"[159][192]";
- 26 geta$:ifa$=""then26
- 27 ifa$=chr$(13)andct>0thenprint"[157] ":return
- 28 ifa$=chr$(20)andct>0thenct=ct-1:in$=left$(in$,ct):print"[157]"chr$(20);:goto25
- 29 if(a$<"a"anda$<>" ")ora$>"z"then26
- 30 ct=ct+1:ifct>8thenct=8:goto26
- 31 print"[157]"a$;:in$=in$+a$:goto25
- 32 gosub205:sk=0
- 33 printleft$(dw$,22)tab(5)"enter skill level: [159]";sk$(sk)
- 34 gosub82:s=sk-(jr=8andsk<7)+(jl=4andsk>0):iffb=0thensk=s:goto37
- 35 ifs=skthen34
- 36 sk=s:goto33
- 37 gosub205:printleft$(dw$,22)tab(14)"[159]please wait"
- 38 ifpl<4thenfork=pl+1to4:pl$(k)=cp$:next
- 39 sc(1)=0:sc(2)=0:sc(3)=0:sc(4)=0
- 40 fork=0to18:forl=0to8:di(k,l)=0:bl$(k,l)="":next:next
- 41 lm=15+10*sk:fork=1tolm
- 42 a=fnrn(18):b=fnrn(8):ifbl$(a,b)<>""then42
- 43 bl$(a,b)=pc$(fnrn(3),0)+pc$(fnrn(3),1)+r$+pc$(fnrn(3),2)+pc$(fnrn(3),3)
- 44 a$=bl$(a,b)
- 45 c=fnrn(18):d=fnrn(8):ifbl$(c,d)<>""then45
- 46 bl$(c,d)=a$:mt(c,d,0)=a:mt(c,d,1)=b:mt(a,b,0)=c:mt(a,b,1)=d
- 47 mt(a,b,2)=0:mt(c,d,2)=0:next
- 48 fork=0to18:forl=0to8
- 49 ifbl$(k,l)=""thengosub51:mt(k,l,0)=-1:mt(k,l,2)=0
- 50 next:next:goto56
- 51 c=fnrn(3)+1:oncgosub52,53,54,55:return
- 52 bl$(k,l)=fi$:return
- 53 bl$(k,l)=hp$:return
- 54 bl$(k,l)=ss$:return
- 55 bl$(k,l)=th$:return
- 56 print"[147][149]!"b1$"#";:fork=1to18:print"$"spc(38)"%";:next
- 57 print"$"b1$"%$[151]"pl$(1)" "pl$(2)" "pl$(3)" "pl$(4)"[149]%";
- 58 print"$"b2$"%$"spc(38)"%&"b1$"'"
- 59 fork=2to19step2:forl=1to19step2:printleft$(dw$,k)spc(l)vb$
- 60 printleft$(dw$,k)spc(38-l)vb$:next:next:qq=fre(0)
- 61 printleft$(dw$,23)"";:fork=1to4:a$=str$(sc(k))
- 62 z=7:gosub204:b$=" "+c$+" ":printcl$(k)b$;:ifk<4thenprint" ";
- 63 next
- 64 printleft$(dw$,25)tab(10)"[159]pairs remaining: ";
- 65 a$=str$(lm):z=3:gosub204:printc$"";:hi=-1:mx=ox:my=cy
- 66 iflm<1then143
- 67 cp=cp+1:ifcp>4thencp=1
- 68 gosub86:lp=cp
- 69 gosub87:ifpl$(cp)=cp$then164
- 70 gosub82
- 71 dx=ox-(jr=8andox<18)+(jl=4andox>0):cx=dx
- 72 dy=cy-(jd=2andcy<8)+(ju=1andcy>0)
- 73 gx=gx-(gxand1):ifdx>14thencx=cx-16:gx=gxor1
- 74 ox=dx:cy=dy:iffb=0thengosub87:goto76
- 75 goto69
- 76 a$=bl$(ox,cy):ifdi(ox,cy)>0anda$<>fb$then69
- 77 b$="":ifa$=fi$thenb$=cl$(cp)
- 78 zl=-(a$=fi$)-2*(a$=th$)-3*(a$=hp$)-4*(a$=ss$)-5*(a$=fb$)
- 79 onspgoto116,119
- 80 hi=-1:sp=2:gx=gxor-2*(px>14):goto69
- 81 sp=1:gx=gx-(gxand2):pokev+21,gx:goto61
- 82 jy=15-(peek(j)and15):ju=jyand1:jd=jyand2:jl=jyand4:jr=jyand8
- 83 fb=peek(j)and16
- 84 ifju=0andjd=0andjr=0andjl=0andfb=16thena=-(j=56320)+(j=56321):j=j+a:goto82
- 85 return
- 86 fork=0to7:poke56097+(lp-1)*10+k,11:poke56097+(cp-1)*10+k,1:next:return
- 87 z=-(sp=2):pokev+40,cl(5):pokev+39,cl(cp)
- 88 pokev,28+16*cx:pokev+16,gx:pokev+1,56+16*cy
- 89 ifz=1andox=pxandcy=pythenpokev+2,peek(v):pokev+3,peek(v+1)
- 90 pokev+21,1+2*z:return
- 91 di(q1,q2)=5:mt(q1,q2,2)=mt(q1,q2,2)+.1
- 92 printleft$(dw$,q2*2+2)spc(q1*2+1)b$a$:bl$(q1,q2)=a$:gosub202:return
- 93 printleft$(dw$,q2*2+2)spc(q1*2+1)vb$:di(q1,q2)=0:ns=5:gosub200
- 94 rv=rv-1:return
- 95 a$=fb$:b$=cl$(cp):di(q1,q2)=cp:lm=lm-.5:goto92
- 96 dimbl$(18,8),di(18,8),pc$(3,3),mt(18,8,2):so=54272
- 97 def fnrn(x)=int((peek(so+27)/256)*(x+1))
- 98 def fnp(x)=(peek(so+27)/256)<x
- 99 r$="[157][157]":fi$="()"+r$+"*+":hp$="[158];<"+r$+"=>":ss$=",-"+r$+"./":fh=0:hs=0
- 100 fb$="_?"+r$+"[192][209]":vb$="[[154]\"+r$+"]^":th$="[155][169][170]"+r$+"[171][172]":cp$="computer"
- 101 b1$="":b2$="":fork=1to38:b1$=b1$+chr$(34):b2$=b2$+"[210]":next
- 102 dw$="":j=56320
- 103 fork=0to3:forl=0to3:pc$(k,l)=chr$(97+4*k+l):nextl,k
- 104 fork=0to2:poke49152+k,255:poke49155+k,255:next
- 105 fork=49158to49203step3:pokek,224:pokek+1,0:pokek+2,7:next
- 106 fork=0to2:poke49206+k,255:poke49209+k,255:poke49212+k,0:next
- 107 cl$(1)="":cl$(2)="[159]":cl$(3)="":cl$(4)="[158]"
- 108 cl(1)=5:cl(2)=3:cl(3)=2:cl(4)=7:cl(5)=12
- 109 data"simple ","very easy ","rather easy","almost easy","almost hard"
- 110 data"rather hard","very hard ","difficult "
- 111 fork=0to7:readsk$(k):next:return
- 112 v=53248:pokev+21,0:pokev+16,0:pokev+2,28:pokev+3,56
- 113 poke51192,0:poke51193,0:cx=0:cy=0:gx=0:cp=0:lp=2:sp=1:ox=0
- 114 fork=sotoso+24:pokek,0:next:rv=0:pokeso+15,255:pokeso+18,128
- 115 return
- 116 px=ox:py=cy:lz=zl:ifzl<5thenq1=ox:q2=cy:gosub91
- 117 onzl+1goto80,80,80,118,81,69
- 118 sc(cp)=sc(cp)+250:goto81
- 119 ifzl<5thenq1=ox:q2=cy:gosub91
- 120 onzl+1goto121,130,133,135,136,138
- 121 onlz+1goto122,127,125
- 122 ifa$<>bl$(px,py)then125
- 123 sc(cp)=sc(cp)+100:q1=ox:q2=cy:gosub95
- 124 q1=px:q2=py:gosub95:goto81
- 125 fork=1to2500:next
- 126 q1=ox:q2=cy:gosub93:q1=px:q2=py:gosub93:goto81
- 127 fork=0to18:forl=0to8:c$=a$
- 128 ifa$=bl$(k,l)thenq1=k:q2=l:gosub95:sc(cp)=sc(cp)+50:a$=c$
- 129 nextl,k:goto81
- 130 onlz+1goto132,80
- 131 goto81
- 132 a$=bl$(px,py):goto127
- 133 iflz=0then125
- 134 goto81
- 135 onlz+1goto125,118:goto81
- 136 iflz=0then125
- 137 goto81
- 138 iflz<>2then80
- 139 a=peek(55337+ox*2+(cy*2)*40)and15:ifa=cl(cp)then80
- 140 lm=lm+.5:q1=ox:q2=cy:gosub95:sc(cp)=sc(cp)+50
- 141 fork=1to4:ifa=cl(k)thenb=k:k=5
- 142 next:sc(b)=sc(b)-50:goto81
- 143 pokev+21,0:print"[147]final results:":print"[149]"b2$
- 144 print"[151]name",,"score","[157][157]blocks won"
- 145 a(1)=0:a(2)=0:a(3)=0:a(4)=0
- 146 forl=0to8:fork=0to18:a=di(k,l):ifa>0anda<5thena(a)=a(a)+1
- 147 next:next
- 148 fork=1to4:print""pl$(k),cl$(k);:a$=str$(sc(k))
- 149 z=7:gosub204:printc$,:a$=str$(a(k)):z=4:gosub204:printc$:next
- 150 print"[149]!"left$(b1$,34)"#":fork=1to3:print"$"spc(34)"%":next
- 151 print"&"left$(b1$,34)"'"
- 152 hs=sc(1):w=1:fork=2to4:ifsc(k)>hsthenhs=sc(k):w=k
- 153 next:printleft$(dw$,20)tab(5)"[159]the winner: ";
- 154 fork=1to4:ifw=kthennext:goto157
- 155 ifsc(k)=hsthena=-k*(a(k)>a(w))-w*(a(w)>a(k))-5*(a(k)=a(w)):w=a
- 156 next
- 157 ifw=5thenprint"high score is tied":goto159
- 158 print"player"w" "pl$(w)
- 159 printleft$(dw$,24)tab(8)"[158]press fire to play again"
- 160 gosub82:iffb=0then3
- 161 goto160
- 162 mx=fnrn(18):my=fnrn(8):goto170
- 163 nx=fnrn(18):ny=fnrn(8):goto175
- 164 onspgoto165,174
- 165 ifhi>-1then197
- 166 ifmt(mx,my,0)=-1andbl$(mx,my)<>ss$then195
- 167 mx=0:my=0:forl=0to8:fork=0to18:a=fnrn(4)
- 168 ifmt(k,l,2)>hianddi(k,l)=0and(a=0orrv>160)thenmx=k:my=l
- 169 next:next
- 170 a=fnrn(1):nx=mt(mx,my,0):ny=mt(mx,my,1):hi=mt(mx,my,2)
- 171 ifmt(mx,my,0)>-1thenifnotfnp(mt(nx,ny,2)+sk*.002+rv*.001)anda=0then162
- 172 ifdi(mx,my)>0then162
- 173 goto197
- 174 ifhi>-1then197
- 175 onlz+1goto176,180,183
- 176 ifnx=-1then163
- 177 iffnrn(9)=0then193
- 178 ifmt(nx,ny,0)>-1thenifnotfnp(mt(nx,ny,2)+sk*.002+rv*.001)andrv<170then163
- 179 goto193
- 180 ifnx=-1then163
- 181 a=fnrn(2):ifa=0then163
- 182 goto193
- 183 ifnx=-1then163
- 184 a=-(fnrn(2)=0):iflm=(15+10*sk)thenona+1goto163,193
- 185 nx=-1:fork=0to18:forl=0to8:a=peek(55337+k*2+(l*2)*40)and15
- 186 ifbl$(k,l)=fb$thengosub190:iffl=0thenk=19:l=9
- 187 next:next
- 188 ifnx=-1thennx=fnrn(18):ny=fnrn(8)
- 189 goto194
- 190 nx=k:ny=l:fl=0:ifa=cl(cp)thenfl=1:nx=-1:return
- 191 b=fnrn(1):ifb>0thenfl=1
- 192 return
- 193 ifdi(nx,ny)>0then163
- 194 hi=5:mx=nx:my=ny:goto197
- 195 iflm=(15+10*sk)andbl$(mx,my)=th$then162
- 196 goto170
- 197 ju=-(my<cy):jd=-2*(my>cy):jr=-8*(mx>ox):jl=-4*(mx<ox)
- 198 fb=16:ifox=mxandcy=mythenfb=0
- 199 goto71
- 200 pokeso+24,15:pokeso+5,9:pokeso+6,0:pokeso,ns:pokeso+1,ns
- 201 pokeso+4,33:forsd=1to100:next:pokeso+4,32:return
- 202 ns=175+75*(a$=fi$)+25*(a$=hp$)+150*(a$=ss$)+100*(a$=th$)-25*(a$=fb$)
- 203 gosub200:rv=rv+1:return
- 204 b$=left$("0000000",z):c$=left$(b$,z-len(a$))+right$(a$,len(a$)-1):return
- 205 poke781,21:sys59903:return
-