I realized last night that my work on Exotherm yesterday might have weakened it overall. Even though it could search deeper/faster, its time management strategy led to it cutting off one layer of nodes partway through. Some second-level nodes had all (third-level) responses considered and therefore had their evaluations adjusted, but not all, adding a huge element of randomness. So today I added a "maximum depth" parameter, at which the move determiner will stop expanding the tree. Under PyPy it now moves in one second or less with a depth of 2, which produces fairly strong moves.
Until today it would always tell its opponent some internal information about the evaluation function each move. Obviously that would be bothersome and possibly too revealing in a rated match, so today I added a per-opponent "talk level." It defaults to "normal," at which it only greets and congratulates the opponent. At "silent" the bot doesn't speak at all; at "verbose" (only available for unrated games, otherwise acts like "normal") it provides its internal commentary. Telling the bot "silent", "normal", or "verbose" will make it update its per-user talk level and acknowledge the change.
No comments:
Post a Comment