Code Monkey home page Code Monkey logo

monkey's Introduction

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.

monkey's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.