home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / games / volume14 / scrabble2 / part01 / README < prev    next >
Text File  |  1993-01-27  |  7KB  |  167 lines

  1. README file for scrabble
  2.  
  3. --------------------
  4. List of files
  5.  
  6.     This is a UNIX version of the crossword-puzzle board game, Scrabble(TM),
  7. by Selchow & Righter.  There are ten files needed to compile and run scrabble:
  8.  
  9. .c files: cmove.c       (Computer move algorithm)
  10.           init.c        (Static declarations)
  11.           misc.c        (Like it says, miscellanous junk)
  12.           pmove.c       (Human player move routines)
  13.           score.c       (Word finding & scoring)
  14.           smain.c       (Main program, initializing, end game)
  15. .h files: globals.h     (Globally-accessible variables)
  16.           scrab.h       (Macros and structs)
  17. text:     scrabbledict  (Scrabble dictionary file)
  18. makefile: Makefile
  19.  
  20. As well, there are two other files:
  21.  
  22. manual:   scrabble.6    (To be placed in your /usr/man/man6 directory)
  23. README:   README        (This file)
  24.  
  25. --------------------
  26. To build the executable file, type
  27.  
  28.     make
  29.  
  30. scrabble should now be ready to run.  To try it out, type
  31.  
  32.     scrabble
  33.  
  34. --------------------
  35. System dependencies
  36.  
  37. 1.  scrabble has been compiled and run successfully on four platforms: Apollo
  38.  Domain, Sun SPARC, Solbourne, and HP 735.  The only file that gave any
  39.  difficulty was the file misc.c.  In particular, the calls to the random-number
  40.  generator were different on certain platforms.  There are two lines of
  41.  significance: line 222
  42.  
  43.     srandom( tp.tv_sec % 65536 - 32768 );
  44.  
  45.  and line 226
  46.  
  47.     return( (long) random() );
  48.  
  49.  The call to srandom() is for seeding the random number generator with the time
  50.  of day, and the call to random() is for returning a long integer random number.
  51.  If these calls give trouble when compiling, a possible solution is to replace
  52.  the call to srandom() with one to srand48(), viz.
  53.  
  54.     srand48( tp.tv_sec % 65536 - 32768 );
  55.  
  56.  and the call to random() with lrand48(), viz.
  57.  
  58.     return( (long) lrand48() ); 
  59.  
  60.  If this does not fix the problem, srandom() may be replaced with srand(), and
  61.  random() replaced with a call to rand().  These are inferior random number
  62.  generators, but they should suffice for scrabble.
  63.  
  64. 2.  scrabble also exploits the terminal's full screen capabilities, using the
  65.  termcap library file.  If your terminal does not have an entry in this file,
  66.  scrabble may not work.  However, most terminals WILL have such an entry, and
  67.  scrabble should be displayed properly.
  68.  
  69. 3.  The dictionary file supplied, scrabbledict, is an 88,000-word dictionary.
  70.  scrabble assumes that this file will be located in the same directory in which
  71.  the command to execute scrabble is entered; the declaration for the name of
  72.  the dictionary file is in scrab.h:
  73.  
  74.     #define DICT_FILE "scrabbledict"
  75.  
  76.  Note that this is a relative path name, so it might require changing.  If, for
  77.  example, scrabble was to be placed in /usr/games, and the dictionary was
  78.  placed in /usr/games/lib, then this line should be changed to
  79.  
  80.     #define DICT_FILE "/usr/games/lib/scrabbledict"
  81.  
  82.  This dictionary includes several words that might be considered rude or inde-
  83.  cent.  However, swear words are certainly valid in scrabble.  The following is
  84.  a (hopefully exhaustive) list of "offensive" words that could be removed from
  85.  scrabbledict:
  86.  
  87.   bastard bastards bitch bitched bitches bitching bitchy bullshit cunt cunts
  88.   dick dicks fart farted farting fart horseshit nigger niggers penis penises
  89.   piss pissed pisses pissing poop pooped pooping poops pussy pussies shit shits
  90.   shitting tit tits vagina vaginae vaginal vaginally vaginas
  91.  
  92.  Be warned!  There might be other words that some might consider improper for
  93.  use in scrabble.
  94.  
  95.     If a different dictionary is to be used, it MUST have the following proper-
  96.  ties for scrabble to work properly:
  97.  
  98.     1. It must be sorted from shortest words (two letters) to longest words
  99.        (fifteen letters).  Furthermore, it must contain no blank lines or
  100.        words of one character (like "A", for example).  Words longer than
  101.        fifteen characters are also unacceptable.
  102.     2. Within each word length, it must be sorted alphabetically.
  103.     3. Words absolutely MUST be all capitals.  Any words with punctuation in
  104.        them (such as hyphens and apostrophes) will be ignored.
  105.  
  106.  These properties imply that /usr/dict/words will NOT work for scrabble!
  107.  Thus, the first line of the dictionary file might be "AD", followed by "AM",
  108.  etc., down to "YE", then "ABA", etc., down to "ZOOGEOGRAPHICAL".
  109.  
  110.     Lastly, note that playing a word longer than nine letters in scrabble is
  111.  a rare occurrence.  To save space, the dictionary could only include words up
  112.  to nine letters long.  This will (approximately) halve the size of most
  113.  dictionaries.
  114.  
  115. 4.  The computer moving algorithm, coded in cmove.c, runs faster if it is
  116.  optimized when compiling it.  Some UNIX implementations automatically opti-
  117.  mize files when they are compiled from a Makefile.  Others do not.  Check the
  118.  man pages on the C compiler on your computer to see how to optimize a program
  119.  during compilation.  If you can't be bothered, try the following lines:
  120.  
  121.     cc -O -o cmove.o -c cmove.c
  122.     make
  123.  
  124.  This might make the computer players search the board significantly faster.
  125.  
  126.     As well, the algorithm is fairly CPU-intensive.  Other jobs tend to slow
  127.  down when the computer is playing.
  128.  
  129. 5.  scrabble is a memory hog; it requires at least 1.5 meg to run.  The actual
  130.  amount is probably closer to 2 meg.  The reason for this is that the diction-
  131.  ary is held in memory to speed up searching it.  For most UNIX platforms, it
  132.  should not be a problem for a single process to use this amount of memory.
  133.  But be warned!
  134.  
  135. --------------------
  136. Program author and distribution policy
  137.  
  138.     scrabble was written over a period of about three weeks by James A. Cherry,
  139. in Ottawa, Ontario, Canada.  It was written as a programming exercise, and also
  140. to settle the question, "If a computer played its best move at Scrabble every
  141. time, would it beat a really good player?"  The author considers himself a
  142. moderately good player, and the answer to the question turned out to be, "Yes,
  143. by a big margin usually."  After others expressed interest in playing the
  144. computer version, computer skill levels were added.
  145.  
  146.     IMPORTANT: scrabble was not written with the permisson of Selchow &
  147. Righter, and to charge others for it would very likely be an infringement of
  148. copyright.  If it is to be distributed, it must be done so for free.  It may,
  149. however, be distributed to as many others as desired.  The author is in no way
  150. liable for the actions of others with regard to their distribution methods,
  151. i.e., if you charge for it and get caught, don't come crying to me!
  152.  
  153. --------------------
  154. Comments, suggestions, etc.
  155.  
  156.     If you have any comments about scrabble, feel free to email the author at
  157. jac@doe.carleton.ca.
  158.  
  159.     As of this writing, there are no known bugs in the code.  Please write to
  160. the address above, with a description of the circumstances, if something funny
  161. happens.
  162.  
  163.     Enjoy!
  164.  
  165. (README ends here)
  166.  
  167.