Elise (terminal version) binaries

On this page you can download a terminal window version of Elise that analyzes .GCG Scrabble® games. An example of the output by this program can be seen here.

These applications are based on version 0.0.4 of the Elise engine.

Linux (x86) binary -- This is an x86 (ELF) binary built on Ubuntu 10.04. It depends on some standard shared (.so) libraries (stdc++, pthread) -- these should already be present if you have g++ installed. If you can run the Elise executable without any command line arguments and it doesn't complain at you, you're probably good.
Win32 binary

In order to actually analyze games, you will need lexicon data also; these can be downloaded individually:

Lexicon data for TWL06
Lexicon data for CSW12
Lexicon data for ENABLE (TWL98)
Lexicon data for SOWPODS

Unzip the lexicon data into the directory with the executable.

A number of special cases are handled. If, for example, a move is challenged off the board, Elise will remember the tiles that were shown until they are played on the board (or opponent exchanges). It also understands overtime penalty lines and challenge of a valid word penalties, when they appear in the GCG file. It will analyze games with partial racks available for players; the analysis is simply based on the partial rack given.

Performance is a fair bit slower in Linux than the Win32 build; profiling indicates that over half the hit is in the C++ STL methods -- this is an old story. Some implementations of the STL are much better than others in terms of performance. Performance on Linux would probably benefit from some targeted optimizations.

Of course, if you give Elise a low "nice" value (high priority), it will simulate faster at the expense of other running processes.

The command line is

elise (input .GCG file) (options)

Elise will print its output to stdout.

Command line options:


Takes one numeric argument. This specifies how many moves Elise looks ahead during simulation; the default setting is 5 ply. Higher ply simulation is stronger but takes more time.


Takes one string argument; the argument should be the name of a lexicon you want Elise to use during the analysis. The default is TWL06. Since Elise will look for files whose names start with the lexicon name that you provide, this option is case-sensitive in Linux.

Note that a #lexicon pragma in the GCG file can override this option (bug? feature?)


Do not draw tile inferences based on previous opponent plays. (Elise will attempt tile guesses by default.)


Include information about the tile inference data in the output after each move.


Takes one numeric argument. This specifies the maximum number of parallel threads allowed for simulation. The default is hardware specific, and usually equal to the number of CPUs on your system.


Includes heat map information for played moves in the output. This data is presented as a matrix (each entry representing a corresponding square on the board), with the entries showing the probability of opponent reply in that square, and the average score of opponent replies in that square.


Outputs the heat map data for all of the displayed moves, not only for the move actually played. (Quite a bit of data!)


Takes one numeric argument. This specifies the maximum number of different moves Elise should output information about (including the played move.) By default, there is no maximum; Elise outputs data for every different move that it simulates.


Takes one numeric argument. This specifies the minimum number of simulations that must be performed on each "top move" (see "-topmoves"). By default, there is no minimum, and Elise's analysis of each move will terminate after it has decided it has found the best move

If "minsim" is specified without a "topmoves" value, Elise will use the value from "maxmoves" for the "topmoves" value. If "maxmoves" isn't specified either, Elise will apply the minimum number of simulations to ALL simulated moves. That is not recommended, unless you want a very long analysis, with the bulk of Elise's time spent working on sub-optimal moves.


Specify the number of moves Elise should consider "top moves", and on which a minimum number of simulations should be enforced. Note that the actually played move is always considered a "top move", regardless of how it ranks in Elise's analysis. The other "top moves" will be the moves Elise ranks highest.

If "minsim" is specified without a "topmoves" value, Elise will use the value from "maxmoves" for the "topmoves" value.

Example: You want information about the played move and the 9 other moves that Elise thinks are best to be output, and you want to be sure that each of these 10 "top moves" receives at least 1,000 simulations a piece. Here are the command line options that accomplish that:

-maxmoves 10 -topmoves 10 -minsim 1000

Since maxmoves and topmoves are equal, this is equivalent to

-maxmoves 10 -minsim 1000

If you want to see all of the moves that Elise simulated, but still want to be sure the 10 top moves get at least 1000 simulations apiece, you would do the reverse and omit "maxmoves" but not "topmoves":

-topmoves 10 -minsim 1000

Scrabble® is a registered trademark of Hasbro in the USA and Canada. Hasbro does not produce or endorse Elise, nor is Hasbro affiliated with Elise in any way. Elise crossword game software is copyright © 2013 C. M. Street.