Kokopu is a JavaScript/TypeScript chess library. It implements the chess game rules, and provides tools to read/write the standard chess file formats (PGN, FEN, UCI, etc.).
https://www.npmjs.com/package/kokopu
npm install kokopu
kokopu.zip
,
unzip it, and include either file kokopu.js
or file kokopu.min.js
in your HTML page.Versions 3.0.0 and 4.0.0 introduce some breaking changes with regard to the previous versions. To determine whether your codebase needs to be adapted or not when upgrading Kokopu, please look at:
const { Position } = require('kokopu');
// Create a new position, play some moves...
const position = new Position();
position.play('e4');
position.play('e5');
position.play('Nf3');
// Display an ASCII-art representation of the position.
console.log(position.ascii({ coordinateVisible: true }));
// +---+---+---+---+---+---+---+---+
// 8 | r | n | b | q | k | b | n | r |
// +---+---+---+---+---+---+---+---+
// 7 | p | p | p | p | | p | p | p |
// +---+---+---+---+---+---+---+---+
// 6 | | | | | | | | |
// +---+---+---+---+---+---+---+---+
// 5 | | | | | p | | | |
// +---+---+---+---+---+---+---+---+
// 4 | | | | | P | | | |
// +---+---+---+---+---+---+---+---+
// 3 | | | | | | N | | |
// +---+---+---+---+---+---+---+---+
// 2 | P | P | P | P | | P | P | P |
// +---+---+---+---+---+---+---+---+
// 1 | R | N | B | Q | K | B | | R |
// +---+---+---+---+---+---+---+---+
// a b c d e f g h
// b KQkq -
// List the available moves.
const moves = position.moves();
console.log(moves.map(move => position.notation(move)));
// [ 'a6', 'a5', 'b6', 'b5', 'c6', 'c5', 'd6','d5', 'f6', 'f5', 'g6',
// 'g5', 'h6', 'h5', 'Na6', 'Nc6', 'Qe7', 'Qf6', 'Qg5', 'Qh4', 'Ke7',
// 'Be7', 'Bd6', 'Bc5', 'Bb4', 'Ba3', 'Nf6', 'Nh6', 'Ne7' ]
Or directly within a HTML page, if no package manager is used:
<script src="kokopu.js"></script>
<script>
const position = new kokopu.Position();
position.play('e4');
position.play('e5');
// etc...
</script>