0.1.2 • Published 2 years ago

node-stockfish v0.1.2

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

Node Stockfish

This is a Node.js wrapper around the Stockfish chess engine. It can be used to analyse chess positions and get the best lines of play.

Installation

A quick npm i node-stockfish should do the trick. This will install the necessary node modules, compile the TypeScript code, clone the latest Stockfish source code and compile it. Note that the installation will take a while because of the Stockfish compilation. On my machine, it takes just under a minute to install. The final size of the node_modules/node-stockfish directory is just over 100MB on my setup.

Usage

import { StockfishInstance } from 'node-stockfish'

// Create a Stockfish instance.

const engine = StockfishInstance.getInstance()

// Set the starting position by providing a string of UCI moves.

engine.setBoardstateByMoves('e2e4 e7e5 b1c3')

// We can also set the starting position by providing a FEN string.

engine.setBoardstateByMoves('rnbqkbnr/pppp1ppp/8/4p3/4P3/2N5/PPPP1PPP/R1BQKBNR b KQkq - 0 1')

// Start anaylsing the position.

engine.startAnalysing({
	// Number of lines to include in the analysis.
	lines: 5
})

// Listen for analysis updates.

engine.onAnalysisData(analysisData =>
{
	console.log(`Analysis for depth ${ analysisData.depth }:`)

	for (const line of analysisData.lines)
	{
		console.log(`\t${ line.score }: ${ line.moves.join(' ') }`)
	}

	console.log('')

	if (analysisData.depth >= 15)
	{
		// Stop the analysis and terminate the Stockfish instance.

		engine.terminate()
	}
})
0.1.0

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago