z  ,, P ,,( 2< ** DECREMENT CLOCK, PRINT TIME REMAINING, CHECK FOR SIXTY **1F ** SECOND WARNING, AND BEEP SPEAKER IF IT'S TIME **7PgZCL CL  : TI  : ,H : CL;()d CL < CL - CL  CL  CL  ,: , , : "--";CL;" SECOND WARNING--";:: ,,n:TI = 30x= ** PRINCIPAL INPUT ROUTINE. ACCEPTS AND VALIDATES LETTERS ** ** RECOGNIZES SPECIAL CHARACTERS SUCH AS ENTER **A$ : TI TI : TI Z Z: CL   A$ "" # A$ "A" A$ "Z" W$W$A$: ,P: A$;:PP:TITIAD : S A$ ( ) (W$) 8 : m A$ ()   A$ () M$ "** ABANDONING THIS GAME **" : ,, :  : : GN GN  :SC(CP)  : ,, : T A$ () W$ ""  : W$ (W$,(W$)): ,P : " "; : P P : TI TI AD :  A$ () P P (W$) : W$ "" : ,P : (); : TI TI AD :   ** GENERATE THE ROLL OF LETTERS FROM WHICH TO MAKE WORDS **? ** IF ROLL CONTAINS A 'Q` MAKE SURE IT IS ACCOMPANIED BY **" ** A 'U`. I MEAN, GIVE THE GUY, OR GAL, A BREAK **,6TM$ @SEED ((TM$,))x((TM$,,))<((TM$,))J SEEDTQP  : RL$ "" : I   : WA(I)  : IM^ I  NL : Q (((GW$))) : Q  Q shL$ (GW$,Q,) : RL$ RL$ L$rL (L$) A : WA(L) WA(L) | L$ "Q" QP  ID QP I ((NL) ) : L ((RL$,I,))A : WA(L) WA(L)  : WA() WA()  : RL$ (RL$,I) "U" (RL$,NLI)JP ** PRINT THE MESSAGE CONTAINED IN M$ ON THE SCREEN. PAUSE, ** ** THEN BLANK IT OUT AND RETURN **PD$ ((@ (M$)), ) : , : PD$;M$;Z %, : X   : X : , : PD$;((M$), );`f ** INITIALIZATION. ASK IF INSTRUCTIONS ARE NEEDED. GET NAMES ** ** OF ALL PLAYERS AND INITIALIZE VALUES OF ALL GAME VARIABLES **7 :  , : ,, : "W O R D W A R S" : ,,S Z   : Z : & "DO YOU NEED INSTRUCTIONS (Y/N)";A$ : (A$,) "Y" 4+ (A$,) "y" 40  : AZ:P D : "HOW MANY PEOPLE ARE PLAYING WORD WARS";NP7N NP  : "ARE YOU KIDDING? " : DX NP  : "SIX PLAYERS MAXIMUM. IF YOU HAVE MORE, I SUGGEST YOU FORM TEAMS." : Db WD$(NP,") :ARRAY OF WORDS FORMED BY EACH PLAYER9l OS(),NW(NP,),NM$(NP),NS$(NP),SC(NP),TS!(NP),CS!(NP),BN(),WA(),WW() : NL  Jv I  NP : "WHAT'S PLAYER #";(I);"'S NAME";: NM$(I) : I I  NP : (NM$(I),) "S" NS$(I) NM$(I) "'" : NS$(I) NM$(I) "'S" I[GW$ "AAAAAAAAABBCCDDDDEEEEEEEEEEEEFFGGGHHIIIIIIIIIJKLLLLMMNNNNNNOOOOOOOOPPQRRRRRRSSSSTTTTTTUUUUVVWWXYYZ"UB$ (, ) () (, ) () (, ) () (, ) () (, ) () ( , ) () (, )KP 7HOS()  : OS()  : OS()  : OS()  : OS()  : OS() ( : OS() 3BN()  : BN()  : I   : BN(I) BN(I) : IAD  : GN BP  ** DRAW THE SCREEN TEMPLATE ** : "GAME NUMBER";GN  , : "LETTERS:";. ,< : "TIME LEFT:";g   ,, : ,: (P,); :  , : (P,);* Z   : Z, : UB$; : Z4 ,,>H ** BEGINNING OF MAIN GAME LOOP. GENERATE THE ROLL OF LETTERS **/R ** FOR THIS GAME. INITIALIZE NECESSARY VARIABLES **5\?f 6JpSB `z CP  NP CL  : ,H : CL;(); NP  , : "IT'S ";NS$(CP);" TURN...CLEAR THE AREA! " , : "HIT WHEN READY TO PLAY, ";NM$(CP);();3A$ : A$ ( ) d , : (<, ); : , : (<, );q ,, I  NL : ,(I) : (RL$,I,);: I ,, ,: NS$(CP);" WORDS";: ,<: "SCORE: ";!  NP  SB  , : "SCORE TO BEAT: ";SB;, BW 2 ~  ** GET A WORD USING INPUT SUBROUTINE. VERIFY THAT IT HAS NOT BEEN **  ** PLAYED BEFORE, HAS AT LEAST THREE LETTERS, AND CONTAINS ONLY **! ** LETTERS IN THE ROLL: ALSO CHECK NUMBER OF WORDS OF THAT LENGTH **!C!$ I   : WW(I) WA(I) : I!. ,: "YOUR WORD, ";NM$(CP);"?";:P () : (2, );:W$ "" : !8 , : "CHECKING ";W$;"... ";!B I  (W$) : L ((W$,I,))A("LWW(L) WW(L) : WW(L) ` : I2"V n"` WA(L)  M$ "** THERE ARE NO "(W$,I,)"'S IN THIS ROLL **" : M$ "** YOUR WORD CONTAINS TOO MANY "(W$,I,)"'S **""j: M$ = "** YOUR WORD CONTAINS TOO MANY "+MID$(W$,I,1)+"'S **"#t  : $#~A# ** CLOCK HAS RUN OUT. BEEP BEEPER **G## : ,:  ,, : "-------TIME'S UP-------";: ,,$ CP NP , : "HIT TO SET UP FOR NEXT PLAYER"; : , : "HIT TO REVIEW GAME SCORING";$Y$ ** END OF GAME FOR CURRENT PLAYER. BLANK PLAYER'S WORDS FROM THE **$ ** SCREEN, CHECK IF PLAYER ACHIEVED A NEW HIGH SCORE FOR THIS **$ ** ROLL, AND GO ON TO THE NEXT PLAYER IF THERE IS ONE **$%A$ : A$ ( ) 2% , : (<, );L% ,! : (, );f% , : (2, );%  ,, : Z   : Z, : UB$;: Z : ,,% ,: ();: ,: ();: , : ();: ,: ();: ,: ();& SC(CP) SB SB SC(CP)!&( CP+&2 r1&<w&F ** WORD VALIDATION ROUTINES. IF WORD IS GOOD, CALCULATE ITS **&P ** POINT VALUE AND ADD IT TO PLAYER'S TOTAL SCORE. CHECK TO **'Z ** SEE IF NEW TOTAL SCORE QUALIFIES PLAYER FOR DOUBLE BONUS ** 'd7'nTI  : LW (W$) : LW  LW 'x LW  M$ "** WORDS MUST HAVE AT LEAST THREE LETTERS **" :  : $' NW(CP,LW) M$ "** YOU ALREADY HAVE 5 WORDS OF THAT LENGTH **" :  : $'NW NW(CP,LW)( NW  5( J (LW) (LW) NW Y( WD$(CP,J) W$ J : (M$ "** SORRY! YOU ALREADY HAVE THAT ONE! **" :  : $(NW NW(CP,LW) : NW(CP,LW) NW (WD$(CP,(LW)NW) W$ ) (W$)  W$ LEFT(W$, )+)A NW : B  OS(LW)z)  : A,B : W$; : ESTABLISHES PRINT POSITION OF PLAYER'S WORDS)SC LW )BN BN(LW)(NW)) SC(CP) BP BN BN BN*SC SC BN : SC(CP) SC(CP)SC : ,A: SC(CP);();* ,,*" SC(CP)BP BW  : M$ "** GREAT!! YOU JUST WENT INTO DOUBLE BONUS TIME **": :M$"-- ALL BONUS SCORES ARE NOW DOUBLED --": :M$"-- AND YOU GET 60 SECONDS OF EXTRA TIME --": :CL CL < : BW*, ,,+6 , : (2, );+@ $$+J_+T ** LIST PLAYER'S WORDS ON THE SCREEN FOR POSSIBLE **+^ ** CHALLENGE BY OTHER PLAYERS **+h+r I  NP +| : NS$(I);" WORDS:", K   : SZ  : K,: ;: J  "  : SZ SZ O, WD$(I,JK) "" (SZ, ); : WD$(I,JK);" ";c, J : K : :, : "ANY OF ";NS$(I);" WORDS MAY NOW BE CHALLENGED.", : "ARE ALL OF ";NS$(I);: " WORDS OK (Y/N)";A$- (A$,) "N" , : "WHICH WORD IS INCORRECT";: W$ : v-FD  : XX  " : WD$(I,XX) W$ FD  : WD$(I,XX) "":  : XX-LW (W$) : LW  LW - FD PN LW (BN(LW)). FD ,: "SORRY ";NM$(I);", THAT'LL COST YOU ";PN;" POINTS.";(); : XX  ` : XX : SC(I) SC(I)PN : "YOUR NEW SCORE IS ";SC(I);"POINTS.";();: XX  ` : XX : |. , : "THAT'S NOT ONE OF ";NS$(I);" WORDS";();: XX  ` : XX : |. I.6/ ** LIST PLAYERS IN DESCENDING ORDER OF THEIR SCORES FOR **y/ ** THE PREVIOUS GAME, AND THEN BY THEIR CUMULATIVE SCORES **/ ** FOR THE CURRENT TOURNAMENT **/&00: );"SCORING FOR ROUND ";GN: : "NAME";5);"SCORE ": "----";5);"-----"A0: I  NP : TS!(I) SC(I) : IR0D J  NP0NHS! ͗@ : W  : I  NP : TS!(I) HS! HS! TS!(I): W I0X I : NM$(W);(4(),".");"######";SC(W): TS!(W)͗@ : J1b , : "PRESS TO CONTINUE";V1lA$ : A$ "" l : A$ ( ) v : l1v : GN  );"FINAL SCORES FOR TOURNAMENT:" : );"CUMULATIVE SCORING:"1 : "NAME";5);"SCORE": "----";5);"-----"2 J  NP : CS!(J) CS!(J)SC(J): SC(J)  : JH2 I  NP: TS!(I) CS!(I) : IY2 J  NP2HS! ͗@: W : I  NP : TS!(I) HS! HS!TS!(I) : W I2 I: NM$(W);(4(),"."); "######";CS!(W): TS!(W) ͗@ : J23 ** END OF GAME CHECK **3y3 GN  GN GN : , : "HIT WHEN READY FOR GAME #";GN; : A$: : 3 , : "ANOTHER TOURNAMENT (Y/N)";#4A$ : A$ ""  : A$ "Y" A$;:  : A$ "N" A$: "THANKS FOR PLAYING!": "MENU.BAS" : [4 I  NP : CS!(I)  : I: NL  : GN 4 I  NP : J  " : WD$(I,J)"": J: K   : NW(I,K) : K: I:A$ : A$ "" : GN  NL 4  45  ** PRINT INSTRUCTIONS ** 5*c54 : "THE OBJECT OF 'WORDWARS` IS TO MAKE AS MANY WORDS AS YOU CAN FROM A GROUP"5> "OF RANDOMLY SELECTED LETTERS DISPLAYED ON THE SCREEN WHILE WORKING AGAINST"5H "A TIME LIMIT OF ABOUT THREE MINUTES.":86R "WORDWARS MAY BE PLAYED BY A SINGLE PLAYER, COMPETING AGAINST THE CLOCK AND"6\ "TRYING TO EARN THE HIGHEST POSSIBLE SCORE, OR BY UP TO SIX PEOPLE PLAYING"6f "AGAINST THE CLOCK AND EACH OTHER.":7p "YOUR WORDS MUST CONTAIN AT LEAST THREE LETTERS. THEY ARE GROUPED ON THE"Y7z "SCREEN ACCORDING TO LENGTH. YOU CAN MAKE UP TO FIVE WORDS OF EACH LENGTH"7 "FROM THREE TO EIGHT LETTERS AND FIVE WORDS WITH MORE THAN EIGHT LETTERS.":7 "NO PROPER NOUNS ARE ALLOWED, BUT CONTRACTIONS, PLURALS AND ALL PREFIXES""8 "AND SUFFIXES ARE PERMITTED.":r8 "A GROUP OF FIVE GAMES, OR ROUNDS, IS CALLED A TOURNAMENT. IN THE FIRST"8 "FOUR GAMES YOU MAKE YOUR WORDS FROM A ROLL OF THIRTEEN LETTERS. IN THE"9 "FIFTH GAME OF THE TOURNAMENT YOU WILL HAVE TWENTY LETTERS TO WORK WITH."9  m9 "IF THERE IS MORE THAN ONE PLAYER, EACH GETS A THREE MINUTE TURN WITH THE"9 "SAME GROUP OF LETTERS. NATURALLY, THOSE WHO HAVE NOT YET HAD THEIR TURN" : "SHOULD NOT WATCH THE SCREEN WHILE OTHERS ARE FORMING THEIR WORDS.":]: "AFTER EACH PLAYER HAS HAD HIS, OR HER TURN, EVERYONE'S WORDS ARE DISPLAYED": "FOR POSSIBLE CHALLENGES FROM THE OTHERS. YOU MAY NEED A DICTIONARY, OR": "SOME OTHER MEANS OF ARBITRATION.":*; "ALL PLAYERS ARE THEN RANKED ACCORDING TO THEIR SCORE FOR THE CURRENT GAME"j; "AND THEN THEIR TOTAL CUMULATIVE SCORE IS DISPLAYED. ":; "A WORD ON SCORING. THE BASIC SCORE FOR A WORD IS TEN POINTS TIMES THE" <$ "NUMBER OF LETTERS IN THE WORD. IN ADDITION, A BONUS RANGING FROM ZERO TO"N<. "EIGHT HUNDRED POINTS IS ADDED TO THE SCORE OF EACH WORD.":<8 "THE MORE LETTERS IN A WORD, AND THE MORE WORDS OF THAT SIZE YOU HAVE"~ "PENALIZED AT THE HIGHEST POSSIBLE SCORE FOR A WORD OF ITS SIZE. THAT IS,"> "AT THE BASE SCORE PLUS THE LARGEST (DOUBLE) POSSIBLE BONUS.":> "IF YOU MAKE A MISTAKE WHILE TYPING A WORD, SIMPLY BACKSPACE TO THE POINT"/? "OF ERROR AND RETYPE YOUR ENTRY. IF YOU DECIDE THE ROLL OF RANDOMLY"|? "SELECTED LETTERS IS NOT TO YOUR LIKING HOLD DOWN THE 'ALT' KEY WHILE"? "PRESSING 030 ON THE NUMERIC KEYPAD. THIS WILL START THE CURRENT GAME"? "OVER WITH A FRESH ROLL OF LETTERS.":C@ "IF YOU HAVE MADE ALL THE WORDS YOU CAN THINK OF AND WISH TO END THE"@ "CURRENT ROUND AND GO ON TO THE NEXT GAME, HOLD THE 'ALT' KEY WHILE PRESSING "@ "027 ON THE NUMERIC KEYPAD. THIS STARTS THE NEXT GAME AND PRESERVES"A "YOUR SCORE FOR THE CURRENT GAME.":]A "YOU MAY FIND IT FUN AT PARTIES TO LET SEVERAL PLAYERS WORK AS A TEAM."A "WHATEVER YOU DO, HAVE FUN AND IMPROVE YOUR VOCABULARY."A : "PRESS TO CONTINUE";ZA : A B ** MUSIC GENERATED WHEN PLAYER FORMS WORD **B( !B2 STARTNOTE (6B< NOTE STARTNOTEUBF "MBL52" :NOTE LENGTHjBP R  (W$)wBZ NOTE$Bd NOTE NOTE  : NOTE$ "N" (NOTE) :GO UP ONE NOTEBn RBx B C ** MUSIC GENERATED WHEN PLAYER ENTERS DOUBLE BONUS MODE **C C "MBO2L4AO3L8C#L16EL4A.L8BO4L8C+.L16C+O3L8B.L16AO3L8B.L16AL8F+.L16AL4EL8F+.L16G#L8A.O4L16C+L8E.L16EL8F+.L16EL8F+.O4L16G+L8F+.L16EL8C+.L16EO2L4AO3L8C#L16EL4A.L8BO4L8C+.L16C+O3L8B.L16A"-D "O4L8C+.L16DL8E.L16C+L8D.L16EL8F+.L16DL8C+.L16EL8A.L16C+O3L8B.L16AL8B.O4L16C+O3L2AL1A"3D YD CL  : ,G : " "; : +.L16DL8E.L16C+L8D.L1