+ : CB1 - G.I.Whiston - 88-11-16 9 : TO CREATE DATAFILE ON FIRST USE, TYPE "GOTO 9999" AA=0  : HI=8 : F1=0 : PTOT=0  TN=7.5 : - Line Datum # PLYR$(8),MSG$(6) $ PSD(8,7) & AA<>9 Tw@ ( DpW : TxX 7PN=1 : ... PLAYER NUMBER F T@Y d GS(4), R(4),RT(4) ! 0,0);"C O D E - B R E A K" ! 0,1);"~~~~~~~~~~~~~~~~~~~" % F1=0 txK : .. Menu & Names ,,C0=24: C0,0);" * ? - ? - ? - ? * "; @ I=1 6 %B C0,I);I;". - - - - "; D LC1=44: C1,0);"B / W"; NC2=52 P C2,0);"SCRATCH-PAD "; R 23,"-"); ;S 76-(PLYR$(PN)),0);" ** PLAYER - ";PLYR$(PN);" **"; T C2,1);93-C2,"~"); $UT=HI: T<4 PSD(PN,6)>199 T=8 0V 12,3);" ]": 0,4);"[ Now ... = ";T;" ]" %W 0,3);(7);"Range [ 1 - ";:A$= )X "=+.>",A$)>0 A$="" HI=T: D\A !ZHI=(A$): HI<4 HI>8 DUA *\TX = 1000 + (HI*150) : - Time Factor #^ 0,3);"Range = 1 to ";HI;" " "` 0,4);"Time = " "b 0,5);"(Press T for update)"  ... Setting code CODE$="* " : A$=" "  I=1 4 R(I)=(HI) T$=" - " : I=4 T$=" *" CODE$=CODE$+(R(I))+T$ A$=A$+(R(I))+" "  : T$=PLYR$(PN) 4 T$="TEST" T$="GIW" T$="CHEAT" 7,0);A$ X ... Entering guesses bGN=0 : =0 : TIM1= lGN=GN+1 v I=1 4 { C0+4*I,GN);"x";   I=1 4  C0-1+4*I,GN);" "; GS$= T=: 8,4);(T-TIM1)/100 % GS$="." GS$=">" t^B t|B  - Using scratch-pad & 90,GN);"<<<"; : C2-2,GN);""; & SP$ : C2-2,GN);" "; : tJB  - End of scratch-pad ,GS(I)=(GS$): GS(I)<1 GS(I)>HI tOB  C0+4*I,GN);GS$;   C1,GN);"OK ?"; : A$= T=: 8,4);(T-TIM1)/100  "=+Yy",A$)>0 dnB 7 A$="N" A$="n" C1,GN);"-----": DvB dfB  tHS : - Evaluating line  BB=4 tpD   GN>5 dhC R DlB : - GN=GN+1 ! : * * * * * * * * * * * *  ... For GN>5 +MSG$(0)="Bad Luck !!" : SCR=.1 : tNH  ... For BB=4 TIM2= MSG$(1)="Well done !" MSG$(2)="Very good !" MSG$(3)="Brilliant !" MSG$(4)="LUCKY GENIUS !" # ... Processing/printing SCORE TIM3 = (TIM2-TIM1)/100  0,4);"Time = ";TIM3;   GN<4 GN=2 + GN/2 ,4SCR=1000*(HI^4)*(TN-GN)/((8^4)*(TN-2.5)) RSCR=(SCR * (TX-TIM3)/TX) \ SCR<5 SCR=5  0,5);"Score = ";(SCR);  " ";: =21 $ SCR<3 MM=0 MM=1+(SCR/170)  MM>4 MM=4 -MM$=MSG$(MM): GN<3 MM$="Pure LUCK !!!"  0,6);"** ";MM$;" **";  SCR<3 t_H C0=C0+2 ! C0,7);"* R I G H T ! *";  " ";: =92 : tnH $ 55,7);" ";: " ";: =92 6 C2,7);"CODE ***";:C0=C0+2 : I=1 7: (7); ( C0,7);"+ + <<= ";  J=1 111 :  C0,7);CODE$;" <<--";  J=1 170 :  ! ... Recording GAME DATA ... ,PSD(PN,0)=PSD(PN,0)+1 : - No. of GAMES - J=5 2 -1 : PSD(PN,J)=PSD(PN,J-1) : PSD(PN,1)=SCR )T=PSD(PN,7) : ... Average of last 5 + PSD(PN,0)<5 TT=0:PSD(PN,6)=0: dTH *TT=0 : J=1 5 : TT=TT+PSD(PN,J) : TT=(TT/5) : PSD(PN,6)=TT  T>TT TT=T PSD(PN,7)=TT : TxX & 0,7);(7);ĩ(MM$)+6,"-")+" ";  <>""  D|U 4V : F1=0 : dH@ : **************************  ... MENU and NAMES $ C=5 : L=2 : C,L);"PLAYERS :"; I=1 8 - PSD(I,0)=0 PLYR$(I)<>"-" N=I: TTQ  I=1 8 % C=0:LL=L+I : I>4 C=15:LL=LL-4  C,LL);I;".";  I=PN (127); " ";  PLYR$(I);   C=32 : L=2 * MSG$(1)="See INSTRUCTIONS ... I " ) MSG$(2)="Add a NEW player ... A " )& MSG$(3)="Delete player(s) ... D " )0 MSG$(4)="See SCORING data ... S " ): MSG$(5)="QUIT ... ... ... Q " 0X M$="Enter PLAYER NUMBER or SELECTION LETTER" Z C0=C+1 : C0,L-2);M$ 8b C0,L-1);"--------------------~~-----------------" I=1 5  C0,L-1+I);MSG$(I);   PLYR$(1)="-" A=2: d@M 75,0)"[Press = to select" ( 75,1)" player marked ";(127);"]" C=73:L=0 (7);  C,L);:A$= - A="1122334455667788=.> IiAaDdSs Qq",A$)  A>0 : C=50 : L=0 + A=((A+1)/2) : A>15 Thc : - QUIT 2 A<9 PLYR$(A)<>"-" tTQ::F1=9: dH@ A=9 A=10 :F1=9: dH@ 0 A<9 PLYR$(A)="-" PLYR$(A)=" " tpL A=A-10 " A TDP,DhP,dLP,TpQ,tTQ   A=2 A=5 F1=9 F1=0  dH@ " ... S/Rs 4100-4500 from 3520  ... 1/I - Instructions  LMSG$(0)="CODE-BREAK - Copyright George I Whiston, 10 November 1988." % MSG$(1)="I N S T R U C T I O N S" + MSG$(2)="Press any key to continue ..." CC=0 : LL=1  I=0 2 ' 40-(MSG$(I))/2,LL+2*I);MSG$(I);   (7);: <>""  UMSG$(0)="Welcome to CODE-BREAK, the code-breaking challenge! Use your powers of" XMSG$(1)="reasoning to break the secret code. There are five levels of difficulty," WMSG$(2)="ranging from FOUR to EIGHT possible numerals in the code - but note that" YMSG$(3)="a numeral can appear more than once within the four-numeral code. You have" W MSG$(4)="up to SIX lines to crack the code, but the fewer lines you use - and the" N"MSG$(5)="less time you use - the higher will be your score. Good luck !" ,CC=0 : LL=1 : DD=3 6 I=0 5 8 CC+DD*I,LL+I);MSG$(I); : \ 92,7);(7);">";: <>"" W^MSG$(0)="* When entering your four guesses on a line, you can press the .> key to" S_MSG$(1)=" move to the SCRATCH-PAD to make notes - press ENTER when finished." Y`MSG$(2)="* After a game, you can press the =+ key to retain the same player and the" [aMSG$(3)=" same level of difficulty (at the appropriate selection) for the next game." TbMSG$(4)="* At an end-of-screen pause (such as now), press ANY key to continue." c -d MSG$(0): MSG$(1):: MSG$(2): MSG$(3) e : MSG$(4) f 92,7);(7);">";: <>"" g h ... 2/A - Add new player i 2,PN+2);" "; j PTOT>7 (7): dBP rPTOT=PTOT+1 +|C=0:LL=2+PTOT : PTOT>4 C=15:LL=LL-4  C,LL);PTOT;". ";  (7);: A$ 5B$=A$,1): (B$)>96 (B$)<123 B$=((B$)-32) PLYR$(PTOT)=B$+A$,(A$)-1) PN=PTOT : TxX   ... 3/D - Delete player C=33:L=5  I=5 7 : C,I);(59);: #M$= "Delete ALL players [Y/N] "  65,6);"- TAKE CARE !!!";  C,6);M$; # (7);: A$=: "YyNn",A$)>0  A$="n" A$="N" THQ #M$= "Please CONFIRM [Y/N] "  C,7);M$; , 65,7);"- Y will delete EVERYTHING !"; " (7);:A$=: "YyNn",A$)>0  A$="N" A$="n" THQ  DpW : TxX : TfQ  - Deleting ONE player # M$= "Enter NUMBER to delete : " +  C,7);(7);M$;:A$=:N1=(A$): N1<9 # M$= "Repeat to confirm : " )  C,7);(7);M$;:A$=:N=(A$): N<9 $C=0:LL=2+N: N>4 C=15:LL=LL-4 ! N=0 N<>N1 N>PTOT TfQ ) I=N+1 PTOT : PLYR$(I-1)=PLYR$(I) ' J=1 7 : PSD(I-1,J)=PSD(I,J) :  PLYR$(PTOT)="-"  PN=PTOT PN=1 ! J=0 7 : PSD(PTOT,J)=0 :  PTOT=PTOT-1 : TxX & 0 ... 4/S - SCORING data D F "SCORING DETAILS" H "~~~~~~~~~~~~~~~" NCC=20 : LL=11 : DD=5 : T=38 P CC,1);"RANGE" Q CC,2);"~~~~~"; 'RM$="NUMBER OF GUESS-LINES TAKEN" T CC+8,0);M$; 6VM$="~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~": CC+8,1);M$; X HII=8 4 -1 \ CC,LL-HII);"1 - ";HII; ^ GN=6 1 -1 ` GN<4 GNN=2+GN/2 GNN=GN a HII<8 DdQ &b CC-DD*GN+T,LL-HII);" (";GN;")"; 9dS1=(1000*(HII^4)*(TN-GNN)/(4096*(TN-2.5))) : S2=(S1) hS2$=" "+(S2),4) l CC-DD*GN+T,LL-HII);S2$; v x : CC=61:LL=0 *zMSG$(1)="The score shown in the table" ({MSG$(2)="is reduced by the factor :" '|MSG$(3)="....... ( X - T ) / X " ,}MSG$(4)="Where : X = 1000 + ( 150 * Z )" ,~MSG$(5)="~~~~~ Z = Range ( 4 to 8 ) " .MSG$(6)=" T = Time taken (seconds)" ( I=1 6 : CC,LL+I);MSG$(I); : % 92,7);(7);"";:A$=: A$<>""   ... 5/P - Select PLAYER " PLYR$(2)="-" PN=1 : dnQ  A<9 PN=A & PLYR$(PN)="-" (7);: txK  ! ... S/R for EVALUATING LINE BB=0 : WW=0  I=1 4 : RT(I)=R(I) :  I=1 4  GS(I)<>RT(I) dDS "BB=BB+1 : GS(I)=99 : RT(I)=999   BB=4 WW=0 : TrT  I=1 4  J=1 4  GS(I)<>RT(J) T^T " WW=WW+1 : GS(I)=11 : RT(J)=111  ( 2 C1,GN);BB;" / ";WW; '< PSD(PN,7)>99 PSD(PN,0)>9 DrU F GN>1 ttT PMSG$(0)="NUMBER OF ... ..." .RMSG$(1)="Correct numbers in wrong columns" .TMSG$(2)="Correct numbers in right columns" Z 52,4) MSG$(0) d I=2 6: C1,I);"^ ^"; +n I=5 C1,I); "^ ^--- ";MSG$(1) +x I=6 C1,I); "^------- ";MSG$(2)  : DrU  GN<>3 DrU  I=4 6 : C1,I);  " ";: >87  r | ... Printing PSDs  4M$="PLAYER Game (1) (2) (3) (4) (5) Av5 Hi5"  0,0);M$;  PTOT>4 47);M$ 4M$="~~~~~~ ~~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~"  0,1);M$;  PTOT>4 47);M$  I=1 8  PSD(I,0)=0 thU &CC=0:LL=1+I: I>4 CC=47:LL=LL-4  CC,LL);PLYR$(I),9);  J=0 7 /C=CC+10+4*J : J>0 C=C+1 : J>5 C=C+1 T$="000"+((PSD(I,J))),3) ( J>PSD(I,0) PSD(I,J)<3 T$=" ~"  C,LL);T$;   : C0=10 I 0,7);"(1) = Last Game Av5 = Average of last 5 games "; " "Hi5 = Highest Av5 so far."; ": 92,7);">";:A$=: A$<>""  p ... INITIALIZING zPTOT=0  I=1 8 PLYR$(I)="-"  J=0 7 PSD(I,J)=0   . 8 ... Printing to "CBDATA" BCN=("CBDATA") L#CN,PTOT V I=1 8 `#CN,PLYR$(I) j J=0 7 t#CN,PSD(I,J) ~  #0   ... Inputing from "CBDATA"  CN=("CBDATA") !#CN,PTOT : === See Line 15  I=1 8 (#CN,PLYR$(I) 2 J=0 7 <#CN,PSD(I,J) F P Z#0 d (# ... QUIT ,#M$="CHEERIO" 2# : I=0 6 <#C1=16+8*I : C2=64-8*I F# C1,I);M$; : C2,I);M$; P# (7);: Z# 43,7);""; d# 'AA=9 : T^@