fen-chess-board

2.0.5 • Public • Published

fen-chess-board travis npm

Module for keeping track of chess boards in Forsyth–Edwards Notation.

Usage

import FENBoard from "fen-chess-board";
 
let fenBoard = new FENBoard("rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR");
fenBoard.board;
/*=>
[ [ 'r', 'n', 'b', 'q', 'k', 'b', 'n', 'r' ],
  [ 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p' ],
  [ '' , '' , '' , '' , '' , '' , '' , ''  ],
  [ '' , '' , '' , '' , '' , '' , '' , ''  ],
  [ '' , '' , '' , '' , '' , '' , '' , ''  ],
  [ '' , '' , '' , '' , '' , '' , '' , ''  ],
  [ 'P', 'P', 'P', 'P', 'P', 'P', 'P', 'P' ],
  [ 'R', 'N', 'B', 'Q', 'K', 'B', 'N', 'R' ] ]
*/

put()

Put the white queen on the a4 square

fenBoard = new FENBoard();
fenBoard.put("a4", "Q");
 
fenBoard.board;
/*=>
[ [],
  [],
  [],
  [],
  ['Q'],
  [],
  [],
  [] ]
*/

set a4 square empty

fenBoard = new FENBoard("start");
fenBoard.put("a1", "");
 
fenBoard.board;
/*=>
[ [ 'r', 'n', 'b', 'q', 'k', 'b', 'n', 'r' ],
  [ 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p' ],
  [ '' , '' , '' , '' , '' , '' , '' , ''  ],
  [ '' , '' , '' , '' , '' , '' , '' , ''  ],
  [ '' , '' , '' , '' , '' , '' , '' , ''  ],
  [ '' , '' , '' , '' , '' , '' , '' , ''  ],
  [ 'P', 'P', 'P', 'P', 'P', 'P', 'P', 'P' ],
  [ '' , 'N', 'B', 'Q', 'K', 'B', 'N', 'R' ] ]
*/

move()

move a piece from a4 to a1

fenBoard = new FENBoard("start");
fenBoard.move("d2", "d4");
 
fenBoard.board;
/*=>
[ [ 'r', 'n', 'b', 'q', 'k', 'b', 'n', 'r' ],
  [ 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p' ],
  [ '' , '' , '' , '' , '' , '' , '' , ''  ],
  [ '' , '' , '' , '' , '' , '' , '' , ''  ],
  [ '' , '' , '' , 'P', '' , '' , '' , ''  ],
  [ '' , '' , '' , '' , '' , '' , '' , ''  ],
  [ 'P', 'P', 'P', '', 'P' , 'P', 'P', 'P' ],
  [ 'R', 'N', 'B', 'Q', 'K', 'B', 'N', 'R' ] ]
*/

setting board position

const scolarsMate = "r1bqk1nr/pppp1Qpp/2n5/2b1p3/2B1P3/8/PPPP1PPP/RNB1K1NR";
fenBoard = new FENBoard();
fenBoard.fen = scolarsMate;
 
fenBoard.board;
/*=>
[ [ 'r',  '', 'b', 'q', 'k', '' , 'n', 'r' ],
  [ 'p', 'p', 'p', 'p', '' , 'Q', 'p', 'p' ],
  [ '' , '' , 'n', '' , '' , '' , '' , ''  ],
  [ '' , '' , 'b', '' , 'p', '' , '' , ''  ],
  [ '' , '' , 'B', '' , 'P', '' , '' , ''  ],
  [ '' , '' , '' , '' , '' , '' , '' , ''  ],
  [ 'P', 'P', 'P', 'P', '' , 'P', 'P', 'P' ],
  [ 'R', 'N', 'B', '' , 'K', '', 'N', 'R' ] ]
*/

simple start position

fenBoard = new FENBoard("start");
fenBoard.board;
/*=>
[ [ 'r', 'n', 'b', 'q', 'k', 'b', 'n', 'r' ],
  [ 'p', 'p', 'p', 'p', 'p', 'p', 'p', 'p' ],
  [ '' , '' , '' , '' , '' , '' , '' , ''  ],
  [ '' , '' , '' , '' , '' , '' , '' , ''  ],
  [ '' , '' , '' , '' , '' , '' , '' , ''  ],
  [ '' , '' , '' , '' , '' , '' , '' , ''  ],
  [ 'P', 'P', 'P', 'P', 'P', 'P', 'P', 'P' ],
  [ 'R', 'N', 'B', 'Q', 'K', 'B', 'N', 'R' ] ]
*/

getting board position

fenBoard = new FENBoard();
fenBoard.fen = scolarsMate;
scolarsMate === fenBoard.fen;
//=> true

License

MIT © Sigurd Fosseng

Package Sidebar

Install

npm i fen-chess-board

Weekly Downloads

3

Version

2.0.5

License

MIT

Unpacked Size

13.4 kB

Total Files

8

Last publish

Collaborators

  • laat