Skip to content

Module for keeping track of chessboards in Forsyth–Edwards Notation.

License

Notifications You must be signed in to change notification settings

laat/fen-chess-board

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 d2 to d4

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

About

Module for keeping track of chessboards in Forsyth–Edwards Notation.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •