Scrabble Solution for Artificial Intelligence
with Prof. Kathy McKeown, Spring 2004
(Client-server framework and gui code written by
Cristian Soviani.)
Documentation
Location of heuristics, etc.:
Search for word:
Initiated at method getPossibleWords(...) [line 85] of
enos.scrabble.domain.Player.
Mainly calls bestNcombinations(...) [line 61] of enos.scrabble.domain.Rack
and getMatches(...) [line 53] of enos.scrabble.datastruct.HashOfWords
via getCandidates(...) [line 28] of enos.scrabble.domain.Dictionary
Search for turn:
in minimax version:
initiated at getMove(...) [line 77] of enos.scrabble.domain.Game,
which calls miniMax [line 12] of enos.scrabble.util.MiniMaximizer.
in fast version:
initiated at getMove(...) [line 68] of enos.scrabble.domain.Game,
(this is commented out in the code), which calls
getBestMove(...) [line 31] of enos.scrabble.domain.Player.
Heuristics for search:
chooseBestGroups(...) [line 121] enos.scrabble.domain.Player
also:
bestNcombinations(...) [line 61] of enos.scrabble.domain.Rack calls
services of enos.scrabble.util.BigramEvaluator, and
getWordPotential(...) [line 156] of enos.scrabble.domain.Word.
MiniMax (2 or 4 play):
choice is made in:
getMove(...) [line 77] of enos.scrabble.domain.Game
Scoring function:
for best move (miniMax version):
in enos.scrabble.util.MiniMaximizer
for scoring of moves:
score() [line 16] of enos.scrabble.util.MoveGroup
|