A tool for validating chess piece movement generated from a FEN position.
FenFurnace is available on npm:
npm install fenfurnace
setupBoard()
- Initialises a new chess game with the default FEN and move data.
createBoard(fen)
- Creates a board from a given fen string.
validation.validateMove(startCell, endCell)
- Check that a given move is valid; calls
isValid()
andpieceInWay()
.
- Check that a given move is valid; calls
validation.isValid(startCell, endCell)
- Check that a given move obeys the rules of chess.
validation.pieceInWay(startCell, endCell)
- Check if there are any pieces between two cells.
makeMove(startCell, endCell, completeMove)
- Attempt to move a piece; returns
false
if invalid. IfcompleteMove
isfalse
, no move will actually be made; instead the move will just be tested for validity.
- Attempt to move a piece; returns
undoMove()
- Undoes and returns the last move.
findAllMoves(cell)
- Return an array of all valid moves from a given cell.
isCheck(colourId)
- Checks whether a given colour (
'w'
or'b'
) is currently in check.
- Checks whether a given colour (
gameEndingStatus(colourId)
- Check the game has concluded and the result of the game (
'checkmate'
,'stalemate'
, orfalse
) for a given colour ('w'
or'b'
).
- Check the game has concluded and the result of the game (
points()
- Return an object containing points scores for white (
w
) and black (b
).
- Return an object containing points scores for white (
The following values are given in import gameData
:
castling
:{ w: { k, q }, b: { k, q } }
(each boolean)boardArray
(array)enpassantSquare
(string or-
)moveList
(array)logList
(array)currentTurn
(null
orw
orb
)halfMoveCount
(int)moveNumber
(int)promotionPiece
(char)
Bundle local code for browser use with npm run compile
.
Functions are available under window.fenFuncs
.