@sashite/feen
v1.2.0
Published
Instantiate Chess positions and apply Chess moves.
Downloads
7
Maintainers
Readme
FEEN.js
FEEN (Forsyth–Edwards Expanded Notation) support for the JavaScript language.
Overview
This is an implementation of FEEN, a generic format that can be used for serializing and deserializing chess positions.
The main chess variants are supported, including Chess, Janggi, Makruk, Shogi, Xiangqi.
More exotic variants are also supported, like: Dai dai shogi, Four-player chess, or Three-dimensional chess 🖖
Installation
npm install @sashite/feen
Usage
// Dump a classic Tsume Shogi problem
FEEN.dump({
inHand: ['S', 'r', 'r', 'b', 'g', 'g', 'g', 'g', 's', 'n', 'n', 'n', 'n', 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p'],
shape: [9, 9],
sideId: 0,
square: {
3: 's',
4: 'k',
5: 's',
22: '+P',
43: '+B'
}
});
// => '3,s,k,s,3/9/4,+P,4/9/7,+B,1/9/9/9/9 0 S,b,g,g,g,g,n,n,n,n,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,r,r,s'
// Parse a classic Tsume Shogi problem
FEEN.parse("3,s,k,s,3/9/4,+P,4/9/7,+B,1/9/9/9/9 0 S,b,g,g,g,g,n,n,n,n,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,r,r,s");
// => {
// inHand: ['S', 'b', 'g', 'g', 'g', 'g', 'n', 'n', 'n', 'n', 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'r', 'r', 's'],
// shape: [9, 9],
// sideId: 0,
// square: {
// 3: 's',
// 4: 'k',
// 5: 's',
// 22: '+P',
// 43: '+B'
// }
// }
TODO
- [ ] More than two dimensions board support
- [ ] More than two players support
License
The code is available as open source under the terms of the MIT License.
About Sashite
This package is maintained by Sashite.
With some lines of code, let's share the beauty of Chinese, Japanese and Western cultures through the game of chess!