It's just some number derived from a portion of the board;
not guaranteed to be unique for every game, but guaranteed
to always be the same for the same board.
Preserves the knowlege of whether the move wins or looses
the game only if getCheckForWin() returns true; return
values are then randomized unless the random seed is
set to 0.
this heuristic is basically counting pieces, but as long as the
game is not over, it weights the pieces differently according to
their potential for a final win.