Skip to content

polyglot is a node module using which a chess opening book in polyglot format can be queried for the existence of a move

License

Notifications You must be signed in to change notification settings

johnfontaine/polyglot

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Polyglot

Polyglot is a node module to search moves in polyglot format opening books. For a description of the polyglot book format refer to this link.

Installation

Make sure you have node.js installed. Then do:

$ npm install polyglot-chess

Example

var Polyglot = require('polyglot-chess');

var obj = new Polyglot();

var fen = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1";
console.log("Polyglot hash for fen " + fen + " is: " + obj.hash(fen));
console.log("Best move in the book is: " + obj.find(fen, "book.bin", true));
console.log("Random move in the book is: " + obj.find(fen, "book.bin", false));

API

Functions

Polyglot exposes following functions -

find(fen, bookFile, findBest)

find takes a fen string and a book file path and looks up the hash in the book file. If findBest is true it returns the best move according to the weight otherwise it returns a random move with the given hash. The chance of a random move being returned is in proportion to its weight. If no move is found it returns an empty string.

hash(fen)

hash takes a fen string and returns its polyglot hash.

Linting

To lint the js files with jshint run the command:

$ grunt lint

Running Tests

To run the tests with mocha run the command:

$ grunt test

Contributing

Fork, pick an issue to fix from issues or add a missing feature and send a pull request.

Credits

This work is derivative of the excellent stockfish polyglot book source code.

License

Polyglot is released under the MIT License. See the bundled LICENSE file for details.

About

polyglot is a node module using which a chess opening book in polyglot format can be queried for the existence of a move

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 81.8%
  • JavaScript 17.9%
  • Python 0.3%