Skip to content
This repository has been archived by the owner on Dec 5, 2024. It is now read-only.
/ FenFurnace Public archive

Chess piece movement validator, designed to work entirely from a FEN position.

License

Notifications You must be signed in to change notification settings

CarbonChess/FenFurnace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

d5ec344 · Jul 26, 2021

History

37 Commits
Jul 7, 2021
Jul 26, 2021
Jul 4, 2021
Jul 26, 2021
Jul 7, 2021
Jul 7, 2021
May 18, 2021
Jul 26, 2021
Jul 26, 2021
Jul 26, 2021
Jul 26, 2021
Jul 7, 2021

Repository files navigation

Latest version Last updated npm downloads

FenFurnace

A tool for validating chess piece movement generated from a FEN position.

Install

FenFurnace is available on npm:

npm install fenfurnace

API

Functions

  • 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() and pieceInWay().
  • 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. If completeMove is false, no move will actually be made; instead the move will just be tested for validity.
  • 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.
  • gameEndingStatus(colourId)
    • Check the game has concluded and the result of the game ('checkmate', 'stalemate', or false) for a given colour ('w' or 'b').
  • points()
    • Return an object containing points scores for white (w) and black (b).

Variables

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 or w or b)
  • halfMoveCount (int)
  • moveNumber (int)
  • promotionPiece (char)

Build

Bundle local code for browser use with npm run compile.

Functions are available under window.fenFuncs.