Skip to content

Utilities for the game of Go

npm Build Status

Data structures and utilities to represent the game of Go.

This library depends on Immutable.js and lodash.

Getting Started

Install godash via npm.

npm install godash

require and use it in your modules.

var godash = require('godash');
var board = new godash.Board(19);
var tengen = new godash.Coordinate(9, 9); // 0-based

board.moves.has(tengen); // false

var standardOpening = placeStone(
standardOpening.moves.has(tengen); // true

Why Godash?

Godash provides the "primitives" for Go manipulations necessary for creating UIs that go beyond a simple SGF player. You can mix and match the functions provided to create whatever wacky UI you want without having to reinvent the wheel every time.

Godash also strives to keep a clean and simple API so that new functionality can be easily extended.

Check out the documentation to see what Godash provides.


Godash doesn't currently do very much parameter checking. It'd probably be nice to add that.

There also isn't much support for writing SGFs. This, too, might be added in the future. Further, reading SGFs is a bit brittle at the moment since the full SGF spec is not implemented.