Connect 4! @ THE PROGGY TAPE  Copyright 1994 John Westhead $n=021:3582 :n B23693\,71G:0:63000:100d:180 66,4;6;"THE PROGGY TAPE PRESENTS" (59 ,9 ;1;8;" CONNECT FOUR " 2b12 ,0;5;"This Is A 128K Or A 48K Program"'"And Loaded Via 128K Or 48K Mode" <.4;''"Including 128K Music & Sound FX" F.6;'"Compt. With CURRAH SPEECH (48K)" P421,1;"Program by John Westhead 1994" ZZ23739\,82R:23740\,0:"":"Connect 4!"::"Connect 4!"20:"" dn=6300163017) nb:n,b xn 33!,0,10 ,43+,126~,211,254,6,7,5,32 ,-3,175,132,200,24,-14 +63003,2:63009!,502 n=13:.007ye`A,19:5:.007ye`A,31:5:63001:0:2.5 :63001:0:2.5 :.007ye`A,19:5:.007ye`A,31:5:63001:0:2.5 :.007ye`A,31:5 1n:n=125:63001:n:0  +190:n="c""c"+7:a:n,a:n F0,0,36$,36$,36$,60<,64@,0 30 poba;ConctBasicUU4U  CONNECT 4   1994 T.P.T "":63003,60<:63009!,10 :N=12:63001:N:0:63999:n=1100d:n:23693\,71G:23624H\,71G:236077\,249:23658j\,8:  ONE VITAL QUESTION  (yN=07:2.5 :N;10 ,0;"ARE YOU USING A 128K ZX SPECTRUM"''" +2, +2A OR A +3? (Y/N)":n 2P18,3;6;"If you're using 48K mode"''" answer ""N""" <K$= F%K$89YK$78N60< P-"K$"=89Yˤ"UX6000W7C":PLUS4=1 Z3"K$"=78N.1}L,13 :PLUS4=0 do18,3;0;" ";20,9 ;" ":N=1100d:N nN=70-1:2.5 :N;10 ,0;"ARE YOU USING A 128K ZX SPECTRUM"''" +2, +2A OR A +3? (Y/N)":N:N=1502:N x MAIN MENU  y::0,0;6;2;8;" C O N N E C T 4 "''';0;5;" Just like the real game!" ''11 ;1;" MENU " %''5;"[1] BRIEF INSTRUCTIONS" ''5;"[2] PLAY THE GAME" ''5;"[3] INSTRUCTIONS" ''5;"[4] QUIT PROGRAM";21,6;6;"By John Westhead":#1;6;1,2;" THE PROGGY TAPE  1994 " Tn=.1}L0-.01z# =:n,24:n:keys=1:2520 :1100L  SELECT SKILL LEVEL  :8,6;1;7;" CHOOSE SKILL LEVEL: ";0;6;11 ,8;"""1"" EASY";13 ,8;"""2"" DIFFICULT":1:0:lev=-480:230:lev1lev2210 #1220:2130R:260 PLUS4=1ˤ"UX6000W7C": $PLUS4=0.1}L,13 :  MESSAGE    u=0   UDG'S  "255,252,240,224,192,192,128,128,255,63?,15,7,3,3,1,1,128,128,192,192,224,240,252,255,1,1,3,3,7,15,63?,255,1,1,9 ,13 ,15,7,3,1,128,128,144,176,240,224,192,128,0,0,36$,36$,36$,60<,64@,0 ,+290":N="A""G"+7:A:N,A:N 6 PRINT BOARD @{n=16:m=17:n*2,m*2;7;1;"";n*2+1,m*2;"":m:n J-14,2;1;" " T0,2;4;1;" ";1,2;" ":0,18;7;1;" CONNECT 4! ":2,18;7;"THE PROGGY";3,18;"TAPE  1994" ^a2;18,0,," PRESS ""0"" DROP PIECE ANY OTHER KEY MOVE THE ARROW ",, hx=2:go=-1 ra(9 ,8) | zz=0  WHO GOES FIRST?  <.5580D )0,2;4;1;"" screen=5 #10 ,18;" " $n=28:a(n,7)n n=9 1090B  u=0  RIGHT, IT'S YOUR  10 ,18;" ";11 ,18;" ";13 ,18;" ":go=go+1:10 ,18;"It's your";11 ,18;"move kiddo...":2080 :25:3290 F6,18;6;1;"MOVE:";0;7;" ";go a$=:a$=""500 Xa$="0"980:s=0:n=x/2:m=5:u=1:610b:1050 G0,x;4;1;" ":x=x+2:x=16x=2 #0,x;4;1;"" nPLUS4=0.0009vkC,502:.0005vn,40(:.005y# =,13 :5:502:500 &PPLUS4=1.0005vn,502:.0005vn,40(:.005y# =,13 0 500 : SPECCY'S  D4keys=0:1950:10 ,18;"Right, I'm";11 ,18;"thinking...";13 ,18;"QUIET PLEASE!":3310 :go=go+1:6,18;6;1;"MOVE:";0;7;" ";go:hs=-1e6t$:n=17:hh=0:s=0:m=253 N!a(n+1,7)870f X CALCULATE SCORE  b&q=27:a(n+1,q)q luq=q-1 v HORIZIONTAL  *y=13:a(n+1,q+y)=my 7z=y-1:y=13:a(n+1,q-y)=my z=z+y:s=s+5^z  VERTICAL  *y=13:a(n+1+y,q)=my 7z=y-1:y=13:a(n+1-y,q)=my z=z+y:s=s+5^z  DIAGONAL  ,y=13:a(n+1+y,q+y)=my 9z=y-1:y=13:a(n+1-y,q-y)=my z=z+y:s=s+5^z ,y=13:a(n+1-y,q+y)=my 9z=y-1:y=13:a(n+1+y,q-y)=my *z=z+y:s=s+5^z+:A RANDOM ELEMENT  u hh  Qm=2s>625qzz=1:hs=s:ht=n:880p:SCORE>625 4 A ROW! *m=2m 4s1=s:s=0 >Flev=2q<7s=0:q=q+1:hh=1:640 H8s1=s1-s*.5:s>625qhs>-1e6t$870f R CHOOSE BEST  \s1>hshs=s1:ht=n fn pN0,x;4;1;" ":screen=2:hs=-1e6t$1090B zx=ht*2 #0,x;4;1;"" PLUS4=0930 PLUS4=1940 ,.0009vkC,502:980:950 M.0005vn,502:.0005vn,40 (:.005y# =,13 :980 zz2000:16,0;5;0;" YES! YES! YES! YES! I'VE WON!! "'" MY REPUTATION HAS BEEN SAVED!! ":3360 :340T:1810:#1;1,2;6;1;" ANY KEY RETURN MENU ":3540 :200:0:130  420    +a((x/2)+1,7)500 0n=27:a((x/2)+1,n)n v=116-2*n:v,x;1;1;screen;" ";v+1,x;" ";v-1,x;(4+3*(v>2));" ":.1}L,v+10 :v a(x/2+1,n)=screen 'PLUS4=1ˤ"H":"UX2500W0O1M14$C"   HUMAN WIN  s>625q2000:16,0;5;0;" WHAT? OH NO YOU'VE...ER...WON! HELP I NEED BE MORE BRAINY! ":3420\ :300,:1630^:#1;6;1;1,2;" ANY KEY RETURN MENU ":0:3540 :502:0:130 $ u=0 . 580D 8  A B22060 :11 ,18;" ";13 ,18;" ":16,0;5;0;" ER....... HEH! HEH! IT'S ER... ER.. TCH! IT'S A (Ahem!) ":3490 :300,:#1;1,2;6;1;" ANY KEY RETURN MENU ":3540 :0:130 LK$= V'K$<480K$>5241100L `PLUS4=12200 jPLUS4=02250 t 1100L ~ BRIEF INSTRUCTIONS  :0,5;1;7;" BRIEF INSTRUCTIONS ";0;6;''" For those who want to play"'" straight away!" '" The game is played on a 7x6"''"grid and the object of the game"''"is to connect 4 of your pieces"''"pieces in a row, vertically,"''"horiziontally, or diagonally."'' " You take turns to drop one of"''"your pieces in one of the seven"''"columns and it falls to the"''"lowest free position." t#1;6;1;1,3;" PRESS ANY KEY TO RETURN ":3540 :1:0::130  CHANGE THE ATTRIBUTE   SKILL SELECTION  }lev=111 ,8;7;1;"'1' EASY";13 ,8;1;0;"'2' DIFFICULT":1250 }lev=211 ,8;1;0;"'1' EASY";13 ,8;7;1;"'2' DIFFICULT":1350F  EASY MESSAGES  1260+*60< #1;"": =M$="I THINK THIS GAME WILL BE A LOT":N=1̱M$:18,-1+N;M$(N):.0009vkC,502:.0009vkC,557:.0009vkC,60<:N:M$="EASIER THAN I THOUGHT!":N=1̱M$:20,-1+N;M$(N):.0009vkC,502:.0009vkC,557:.0009vkC,60<:N:26102 :250 : CM$="DON'T TELL ME YOU'RE A ":N=1̱M$:18,-1+N;M$(N):.0009vkC,502:.0009vkC,557:.0009vkC,60<:N:M$="PLAYER...... GREAT! EASY-PEASY!":N=1̱M$:20,-1+N;M$(N):.0009vkC,502:.0009vkC,557:.0009vkC,60<:N:2670n :350^:  M$="OH I SEE, TAKIN' IT EASY FIRST!":N=1̱M$:18,-1+N;M$(N):.0009vkC,502:.0009vkC,557:.0009vkC,60<:N:2730 :200: 6M$="NAY! YOU'VE JUST CHOSEN EASY":N=1̱M$:18,-1+N;M$(N):.0009vkC,502:.0009vkC,557:.0009vkC,60<:N:M$="JUST TO BE AWKWARD!":N=1̱M$:20,-1+N;M$(N):.0009vkC,502:.0009vkC,557:.0009vkC,60<:N:2770 :300,: M$="I HOPE YOU'RE NOT GONNA BEAT ME!":N=1̱M$:18,-1+N;M$(N):.0009vkC,502:.0009vkC,557:.0009vkC,60<:N:2830 :200: (EM$="HA! THIS'LL BE A PIECE OF CAKE!":N=1̱M$:18,-1+N;M$(N):.0009vkC,502:.0009vkC,557:.0009vkC,60<:N:28706 :200:M$="Please no jokes about Birthdays!":100d:N=1̱M$:21,-1+N;6;M$(N):.0009vkC,35#:N:2920h :225: 2 1250 < DIFFICULTY MESSAGES  F1360P+*60< P#1;"":0: ZM$="DO YOU DARE TO CHALLENGE ME?":N=1̱M$:18,-1+N;M$(N):.0009vkC,502:.0009vkC,557:.0009vkC,60<:N:2970 :190: dM$="OKAY MATE, YOU'VE ASKED FOR IT!":N=1̱M$:18,-1+N;M$(N):.0009vkC,502:.0009vkC,557:.0009vkC,60<:N:3020 :175: nM$="HA! HA! HA! I'LL THRASH YOU!":N=1̱M$:18,-1+N;M$(N):.0009vkC,502:.0009vkC,557:.0009vkC,60<:N:3060 :150: xPM$="NOW REMEMBER KIDS, THIS ISN'T AN":N=1̱M$:18,-1+N;M$(N):.0009vkC,502:.0009vkC,557:.0009vkC,60<:N:M$="EASY GAME! (IF YOU'RE A KID).":N=1̱M$:20,-1+N;M$(N):.0009vkC,502:.0009vkC,557:.0009vkC,60<:N:3100 :3160X :300,: ;M$="HMM.... YOU LOOK AS BRAINY AS I":N=1̱M$:18,-1+N;M$(N):.0009vkC,502:.0009vkC,557:.0009vkC,60<:N:M$="DO TO PLAY THIS GAME!":N=1̱M$:20,-1+N;M$(N):.0009vkC,502:.0009vkC,557:.0009vkC,60<:N:3180l :300,: M$="RIGHT THIS IS GONNA BE A BATTLE!":N=1̱M$:18,-1+N;M$(N):.0009vkC,502:.0009vkC,557:.0009vkC,60<:N:3240 :175:  1350F  MAIN INSTRUCTIONS  :0,6;1;7;" MAIN INSTRUCTIONS ";0;6;''" For those who don't want"'" to play just yet"'' ,1470:n=12:R$:R$'':n "Here's a game that's full of funand fustration. Based on apopular board game, the idea ispretty similar to Noughts andCrosses - only this time you'vegot to line up four tokens in arow!" "On screen you'll be presentedwith a grid made up of circleson the left side and some text.The grid comprises six rows ofseven columns each, with anarrow character poised at thetop of one of the columns."  1600@ ,1510:n=12:R$:R$'':n "To release one of your piecesinto the column, press ""0"" andit will fall to the lowest freeposition. If the arrow isn'tpointing to the column in whichyou want to make your move, thearrow can be re-positioned usingany key other than the ""0"" key." "The game is played against theSpeccy and the choice as to whoplays first is decided at random(TO BE FAIR!!) When you've madeyour move, a message is flashedannouncing that it's thinking.It will then make its move andit's up to you again."  1600@ ,1550:n=11:R$:R$'':n F" The way to win is to placeyour pieces so that you achieve""four in a row"" (No, this isn'tGoing For Gold with Henry Kelleyby the way!) Place eitherhorizontally, vertically, ordiagonally. Of course, brainySpeccy, your computerisedopponent is using the sametactics as you, so watch out!"  1600@ "-1580,:n=11:R$:R$'':n: ,>"There are 2 levels of difficulty- easy and hard (and when itsays hard, it's not joking!!!).Each time a move is made, the""number of moves"" counter isincremented and displayed onscreen just in case you'd liketo how many moves it has takenyou to beat the Speccy (assumingof course, that you do)." 6#1;0,3;6;1;" PRESS ANY KEY TO RETURN ":3630.:0:N=124:3280 :N::130 @#1;0,3;6;1;" PRESS ANY KEY TO CONTINUE ":3590:0:N=124:3280 :N::0,0;1;7;" CONTINUED... "'': J VARIETY OF SOUNDS  T BOTH 48K & 128K ^PLUS4=11730 hPLUS4=01650r r4n=1100d:n:n=2282 |l=1168 ,.02{# =,n+l:l:n:n=1502:n N=12:1710 I=18:H,J:H,J I:N .1}L,11 ,.1}L,11 ,0.8L,16,.05|L,11 ,.04|# =,16,.04|# =,11 ,.04|# =,16,1,20  ."T240UX500W7N2CDECDECDECDECDECDECDECDECDE9C" n=12 X$="T240O2bb9E2bEb3E9B" Y$="T240O4bb9E2bEb3E9B" Z$="T240O6bb9E2bEb3E9B"  X$,Y$,Z$ n  PLUS4=01830& PLUS4=11890b &Vv=-19-25-3:.2~L,v/5:.2~L,v:v:1,-28 0 1870N :i=115:H,J:H,J Di N.6,-20,.1}L,-10 ,.1}L,-11 ,.1}L,-10 ,.6,-10 ,.6,-20,.1}L,-5,.1}L,-6,.1}L,-5,.6,-5,.3,0,.3,-5,.3,-10 ,.3,-11 ,.3,-6 X bwX$="T95UX6000W7O1BBGGFFEEDDCN1_9C":Y$="T95UX6000W7O1BBGGFFEEDDCN1_9C":Z$="T95UX6000W7O1BGFEDCBGFEDN1_9C" :X$,Y$,Z$ lbX$="T240O2N1_9EO3N1_4D$DDDN1_9EGN1_6$GGGCGD$DCO1V14CV13CV12CV10CV9CV8CV7CV6CV5CV4CV3CV2CV1N1_9C" vfY$="T240O2N1_9EO3N1_4D$DDDN1_9EGN1_6$GGGCGD$DCO1V14CV13CV12CV11CV10CV9CV8CV7CV6CV5CV4CV3CV2CV1N1_9C" fZ$="T240O2N1_9EO3N1_4D$DDDN1_9EGN1_6$GGGCGD$DCO1V14CV13CV12CV11CV10CV9CV8CV7CV6CV5CV4CV3CV2CV1N1_9C"  X$,Y$,Z$  PLUS4=11980 PLUS4=01970 N.05|L,0:.05|L,4:.05|L,7:.1}L,12 : FW$="T170O3N1ceg3C":X$="T170O5N1ceg3C":Y$="T170O7N1ceg3C":W$,X$,Y$  2290 x=15 y=10 60<5 .005y# =,y y x   Yj=1̧:i=9 -9 -1-1:.05|L*J,I:I:J:1,-1   PLUS4=021004 *PLUS4=12110> 4Q .05|L,7:.05|L,11 :.05|L,14:.1}L,19: >FX$="T170O3N1gbD3C":Y$="T170O5N1gbD3C":Z$="T170O7N1gbD3C":X$,Y$,Z$ H 2410j RPLUS4=02150f \PLUS4=12170z fbN=14:.1}L,30:.1}L,35#:.1}L,40(:.1}L,45-:n p.2~L,0:.1}L,0:.1}L,0:.13~R,4:.13~R,0:.13~R,4:.4L,7: z1n=14:"T240UX1000W0O7N2c#f#gEA":n [P$="T240O3cN2ccN3eN4ce9g":Q$="T240O6cN2ccN3eN4ce9g":R$="T240O7CN2CCN3EN4CE9G":P$,Q$,R$   MENU (48K/128K)  *"K$"=491ˤ"UX6000W7C":1160 )"K$"=502ˤ"UX6000W7C":210 *"K$"=513ˤ"UX6000W7C":1450 Y"K$"=524ˤ"UX6000W7C":10 ,13 ;"BYE":200:7:4580 0"K$"=491.1}L,13 :1160 /"K$"=502.1}L,13 :210 0"K$"=513.1}L,13 :1450 b"K$"=524.1}L,13 ::10 ,13 ;"BYE!":200:7:4580 1 CHANNEL TRACK (128K)  SPECY'S THINKING SOUND Q=65533:L=49149 N=07 $M=015 .Q,7:L,62> 8Q,1:L,N BQ,8:L,N LQ,M:L,8 VN:M ` j YOUR SOUND  tQ=65533:L=49149 ~N=04 M=015 Q,7:L,62> Q,1:L,N Q,8:L,N Q,M:L,10 N:M  > CURRAH SPEECH ROUTINE  48K ONLY(ATTACHED) u$="CO(nn)EKT F(oo)r" v$=" B(ii) jon" w$=" wess(tt)hed" x$=" V(ee)Pro'gyTeip" "y$=" kop(ee)r(ii)tn(ii)nt(ee)n" z$="n(ii)ntif(oo)r" `s$=u$:1:s$=v$:1:s$=w$:1:s$=x$:1:s$=y$:1:s$=z$:1 KEYS=0 ( 2t$="a(ii)(th)ink(dth)is" <u$="geimwi(ll)b(ee)(aa)" Fv$="lotizi(er)than" Pw$="a(ii)thORt" Z\keys=1:s$=t$:1:s$=u$:1:s$=v$:1:s$=w$:1:keys=0 d nt$="D(OO)NT TE(LL) m(ee)" xu$="you(re) (aa) ny(ouu)" v$="pl(ay)(er) GR(AA)T" w$=" iz(ee)P(EE)IZ(EE)" \keys=1:s$=t$:1:s$=u$:1:s$=v$:1:s$=w$:1:keys=0  t$="EU A(II) S(ee), teiking" u$="it iz(ee) f(er)st" <keys=1:s$=t$:1:s$=u$:1:keys=0  t$="N(AY), y(ouu)'vjust" u$="(ch)euzen izi(ee)" v$="JUSTt(ouu)b(ee)" w$="(AR)Kwurd" \keys=1:s$=t$:1:s$=u$:1:s$=v$:1:s$=w$:1:keys=0  t$="A(II) h(oo)p you(re) " u$="NOT GU(NN)A B(EE)T M(ee)" "<keys=1:s$=t$:1:s$=u$:1:keys=0 , 6t$="HA, (dth)is(ll)" @u$="b(ee) (aa) p(ee)s" Jv$="of c(aa)k" TLkeys=1:s$=t$:1:s$=u$:1:s$=v$:1:keys=0 ^ ht$="pl(ee)z n(oo) j(oo)ks" ru$=" a(bb)out " |v$=" BERTHd(aa)yz" Lkeys=1:s$=t$:1:s$=u$:1:s$=v$:1:keys=0  t$="d(ouu) y(ouu)" u$="da(re) t(ouu)" v$="(ch)alenj M(EE)" Lkeys=1:s$=t$:1:s$=u$:1:s$=v$:1:keys=0  t$="(OO)K(AY) M(Aa)(tt)" u$=" y(ouu)'vaskdforit" <keys=1:s$=t$:1:s$=u$:1:keys=0  t$="HAHAHA, A(ii)(ll)" u$="THRA(SH) Y(ouu)" <keys=1:s$=t$:1:s$=u$:1:keys=0  t$="N(OW) R(ee)member" &u$="ki(dd)s (dth)is" 0v$="isn'taniz(ee)" : w$="geim" D\keys=1:s$=t$:1:s$=u$:1:s$=v$:1:s$=w$:1:keys=0 N XBkeys=1:s$="if you(re) (aa) ki(dd)":1:keys=0 b lt$="HMM, Y(ouu) luk az" vu$="b(re)in(ee) aza(ii)" v$="d(ouu)t(ouu)pl(aa) " w$="(dth)is geim" \keys=1:s$=t$:1:s$=u$:1:s$=v$:1:s$=w$:1:keys=0  t$="R(II)T, (dth)isiz" u$="gu(nn)a b(ee)" v$="(aa)BATL" Lkeys=1:s$=t$:1:s$=u$:1:s$=v$:1:keys=0  Ekeys=1:s$="IT'ZY(OU)RM(IU)V ki(dd)ow":1:keys=0  t$="r(ii)t a(ii)m" u$="(th)inkin, kwAEAT" v$="PL(EE)Z" Lkeys=1:s$=t$:1:s$=u$:1:s$=v$:1:keys=0  t$="YES YES YES YES" *u$=" a(ii)v WUN m(ii)" 4v$=" reprut(ay)(sh)un" >w$="haz b(ee)n S(AA)V'D" H\keys=1:s$=t$:1:s$=u$:1:s$=v$:1:s$=w$:1:keys=0 R \t$="WOT ow n(OO) y(ouu)'v" fu$=" (er)m wUN" pv$=" HELP a(ii)n(ee)d" zw$=" t(ouu)b(ee) " x$="m(oo)r br(aa)n(ee)" lkeys=1:s$=t$:1:s$=u$:1:s$=v$:1:s$=w$:1:s$=x$:1:keys=0  t$="(er)m HEH HEH it'z" u$="(er)m (er)m T " "v$=" it'z (aa) d(ra) ahem" Lkeys=1:s$=t$:1:s$=u$:1:s$=v$:1:keys=0  t$="press eni k(ee) " u$="t(ouu) riturn " v$="t(ouu) meny(ouu)" Lkeys=1:s$=t$:1:s$=u$:1:s$=v$:1:keys=0  t$="press eni k(ee)" u$="t(ouu) continy(ouu)" <keys=1:s$=t$:1:s$=u$:1:keys=0 $ .t$="press eni k(ee)" 8u$="t(ouu) riturn" B<keys=1:s$=t$:1:s$=u$:1:keys=0 L V PROGRAM MEMORY  `+16,0;1;" THE MEMORY " j+STK=23653e\+256*(23654f\) t+RMT=23730\+256*(23731\) ~+PRG=23635S\+256*(23636T\) +VRS=23627K\+256*(23628L\)  MEM=RMT-STK  LTH=VRS-PRG ''"PROGRAM: ";LTH;" BYTES" "REMAINING: ";MEM;" """  0: (KYFConectFont00000066666 ?h> ~03 344heb=0    ?? ? 00``` 0 111 < ?3 ?33&??0>10691? 111##00000000`  ??  # 37570 111<2>111>10001<21112<?0>000??0>00001031111?1111? ?6248<631000000?1;;5511199533111111>11>00011152>11>21111? 111111111 aaii>6211 ##11 ? 0?0   ? <<;#006911>101'##348>##0069111  0016<63 :555569111111>19600#'690000>  ####111551 ####? ?    1kF