@sashite/feen

    1.2.0 • Public • Published

    FEEN.js

    Build Status

    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 🖖

    3D chess on Star Trek (from the episode "Court Martial")

    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!

    Install

    npm i @sashite/feen

    DownloadsWeekly Downloads

    3

    Version

    1.2.0

    License

    MIT

    Unpacked Size

    7.71 kB

    Total Files

    8

    Last publish

    Collaborators

    • avatar