mct

mcts

A simple Monte Carlo Tree Search library

Showing:

Popularity

Downloads/wk

8

GitHub Stars

41

Maintenance

Last Commit

4yrs ago

Contributors

0

Package

Dependencies

1

Size (min+gzip)

19.3KB

License

Type Definitions

Tree-Shakeable

No?

Categories

Readme

MCTS

This library implements a simple Monte Carlo Tree Search for games.

Usage

Implement a class that has the following methods:

  • getPossibleMoves() returns an array of possible moves
  • performMove(move) updates the internal state of the game based on the move
  • getCurrentPlayer() returns the current player
  • getWinner() returns the winner or undefined if there is no winner

Then to get the next move a player should perform call getcall MCTS with an instance of your game class. Here is a totally contrived game where whoever goes first wins:

MCTS = require('mcts').MCTS;

function Game() {
  this.winner = null;
}

Game.prototype.getPossibleMoves = function () {
  if (this.winner === null) {
    return [0];
  }
  return [];
};

Game.prototype.getCurrentPlayer = function () {
  return 0;
};
 
Game.prototype.performMove = function (player) {
  this.winner = player;
};

Game.prototype.getWinner = function () {
  return this.winner;
};

var mcts = new MCTS(new Game());
console.log(mcts.selectMove());

0

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100