Module for keeping track of chess boards in Forsyth–Edwards Notation.
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 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 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' ] ]
*/
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' ] ]
*/
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' ] ]
*/
fenBoard = new FENBoard();
fenBoard.fen = scolarsMate;
scolarsMate === fenBoard.fen;
//=> true
MIT © Sigurd Fosseng