Suggests moves for crossword games such as Scrabble and Words with Friends using a gaddag.
A GADDAG is a type of directed acyclic word graph (DAWG) where each word is stored with each of its prefixes, reversed.
Figure 1: A small purple dawg and its reverse.
You need CMake and a reasonably new GCC or Clang compiler supporting C++14.
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make
Puppup outputs ANSI colour codes, so be sure to use a terminal that supports this. You need to supply your own dictionary (a text file with one word per line).
./puppup word_list.txt
The word list is not provided with puppup (see: Who owns Scrabble's word list?).