There is no documentation at this point.  I'll write a general
description and you can feel free to ask for more details

For move generation there are two main techniques, both supported by
quackle, for which the canonical references are:

"The World's Fastest Scabble Program", Andrew W. Appel and Guy J.
Jacobson (http://www.gtoal.com/wordgames/jacobson+appel/aj.pdf).  This
is the DAWG algorithm.  I

"A Faster Scrabble Move Generation Algorithm" by Steve A. Gordon
(http://www.cs.ubc.ca/local/reading/proceedings/spe91-95/spe/vol24/issue2/spe880.pdf).
 This is the GADDAG algorithm which is faster than DAWG but uses a
larger data structure. 

There's not much to say about move generation other than to do it fast
and correctly.  Evaluation is much trickier.  You should start with
the Maven paper by Brian Sheppard
(http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.2.9747). 
Quackle is a bit simpler in that it doesn't do shared consideration
(e.g. a penalty for opening a triple word line) but is otherwise
fairly similar.

The main difference is in the use of superleaves.  Superleaves give a
value for every possible leave rather than a simpler heuristic based
on values per letter and letter-pair.  How they are generated is
something of a arcane art and not part of Quackle proper today.

Simulation is straight forward once you have the rest in place.  Just
have each player play their best move given random racks for the
opponents.  Some statistical summary is given in the simviewer.

Quackle supports a c++ base class for computer players from which
several derived versions are created that represent different tiers of
effort.  The simplest player just uses static evaluation while the
others use varying amounts of simulation.  There is also a special end
game player that comes into play once the bag is empty, or nearly so,
as the game becomes deterministic at that point.

I hope that helps.

Matt

Reply via email to