Skip to content

thomasmarsh/monkey

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Card game test bed for AI implementation. The game rules are a work in progress (a family collaborative effort), and this implementation corresponds to an old version of the game. It is a non-deterministic game of hidden information for 2-4 players.

The principal AI uses the Information Set Monte Carlo Tree Search (ISMCTS) approach to finding the best move. More information on the algorithm can be found here: http://eprints.whiterose.ac.uk/75048/1/CowlingPowleyWhitehouse2012.pdf. Based on empirical results, and as is consistent with other MCTS implementations, a number of domain-specific adjustments improved the performance of the AI.

For comparison, a flat Monte Carlo search AI is also provided. It performs surprisingly well. The performance is on par with untuned, naive ISMCTS, and due to the stochastic nature of the game will occasionally win against the tuned ISMCTS imlementation.

There is also a heuristic based player which performs a simple strategy based on maximizing score. This player can get lucky, but lacks strategic depth to win consistently. It primarily serves to help benchmark the flat MC and ISMCTS AIs.

There is a terminal based input mechanism for human players. It is quite unwieldy. The UI should be reimplemented to allow direct human input.

To run:

bazel build src:monkey
./bazel-bin/src/monkey

Note: you'll need SFML linked from the third_party directory. I've set up my link, using homebrew on Mac, like this: sfml -> /usr/local/Cellar/sfml/2.4.0.

About

ISMCTS Card Game AI

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published