Chess.jl

Home * Software * Utilities * Chess.jl

Chess.jl,

a chess programming library by Tord Romstad, written in the Julia programming language [1]. Chess.jl has functions to create and manipulate chess games, chess positions and sets of squares on the board (aka Bitboards [2]). It can read and write chess games in PGN format (including support for comments and variations), create opening books, and interact with UCI chess engines [3], for instance to play engine versus engine matches for tuning and NNUE training purposes.

Types

Chess.jl features following data types and APIs. Scalar data types like Squares and Pieces with discrete enumerated value range are internally wrapper around integer.

SquareSet

The SquareSet aka Bitboard API [4] provide setwise operations including shifts, and piece-wise attack getter - for sliding pieces from a given square and occupancy. There are also functions to transform a SquareSet into a vector of squares.

Board

Using a chess board object through a Pluto [5] or Jupyter notebook, features a graphical board, along with a board representation link in lichess.

See also

Forum Posts

References

  1. ↑ Julia (programming language) from Wikipedia
  2. ↑ Re: Is cloning a hobby? by Tord Romstad, CCC, September 21, 2020
  3. ↑ Home Β· Chess.jl
  4. ↑ API Reference Β· Chess.jl
  5. ↑ GitHub - fonsp/Pluto.jl: 🎈 Simple reactive notebooks for Julia

Up one Level