Comment #4 on issue 12 by bluegaspode: Migrate MCTSBot from CSPoker to work
I pushed a first version of the migration work.
This is what I did so far:
- used all packages from
- included all needed libraries and other referenced classes from cspoker
- tried to remove as much classes outside as possible
- replaced some obvious classes like 'Card' with the meerkat equivalents.
- moved the package structure
- wrote a small Meerkat-Wrapper-Class (MCTSMeerkatBot) which builds the
'GameState'-structure needed by the actual MCTSBot and asks this bot for
action.
Could be that some important classes are missing now (which were
uncommented in the
current CSPoker). One temporary victim was the SWTTreeListener which I
revived again.
(One can active the Tree-GUI in the MCTSBot.pd - Meerkat-File)
I changed the CashGameConsoleStarter to play a small game between two
SimpleBots and
two MCTSBots. MCTSBot is very aggresive preflop but according to Guy this
is to be
expected.
Tasks to come:
# CSPoker has some 'ai-experiments' classes which setup the bot in
different ways.
Need to check that all these variations are still working.
# Provide options to the MCTSBot.pd-file to configure the Bot (like was
done directly
in the Code before). Create some more common preconfigured MCTSBot.pd-Files.
# Still far too many classes.
- I think we can get rid of all Event-Classes (merge them with the State
classes).
- The spears2+2 HandEval could be replaced either by the KlaatuFastEval
or Jokipii
adaptions which doesn't use as much memory (see HandEvaluator-Thread on
pokerAI)
- The 'PlayerContext'-class is not needed anymore, but the current way
for the bot
to publish his actions.
- Some Factories are not needed anymore (i.e. BotFactory).
# Change the MCTS-Tree-GUI to Swing (currently the final window with the
graph is
Swing too)
# I'm not building the GameState to showdown (just as far as the bot needs
it). Could
be that some opponentmodels need that, but didn't check yet