Chess.jl

Home * Software * Utilities * Chess.jl

Chess.jl, a chess programming library by Tord Romstad, written in the Julia programming language. Chess.jl has functions to create and manipulate chess games, chess positions and sets of squares on the board (aka Bitboards ). 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 , 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.
 * Squares
 * SquareFile
 * SquareRank
 * SquareSet
 * Pieces
 * Piece Type
 * Piece Color
 * Board
 * Moves
 * UndoInfo
 * MoveList
 * Chess Game
 * PGN format
 * Opening Book
 * UCI Chess Engine

SquareSet
The SquareSet aka Bitboard API 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 or Jupyter notebook, features a graphical board, along with a board representation link in lichess.

=See also=
 * python-chess

=Forum Posts=
 * Re: Is cloning a hobby? by Tord Romstad, CCC, September 21, 2020
 * Chess.jl – new version by Tord Romstad, CCC, April 30, 2021

=External Links=
 * Home · Chess.jl
 * 🎈 chess-jl-tutorial.jl — Pluto.jl

=References= Up one Level