Changes

Jump to: navigation, search

Chess.jl

3,162 bytes added, 14:43, 29 June 2021
Created page with "'''Home * Software * Utilities * Chess.jl''' '''Chess.jl''',<br/> a chess programming library by Tord Romstad, written in the Julia programming..."
'''[[Main Page|Home]] * [[Software]] * [[Utilities]] * Chess.jl'''

'''Chess.jl''',<br/>
a chess programming library by [[Tord Romstad]], written in the [[Julia]] programming language <ref>[https://en.wikipedia.org/wiki/Julia_(programming_language) Julia (programming language) from Wikipedia]</ref>.
Chess.jl has functions to create and manipulate [[Chess Game|chess games]], [[Chess Position|chess positions]] and [[Bitboards|sets of squares]]
on the [[Chessboard|board]] (aka [[Bitboards]] <ref>[http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75040&start=74 Re: Is cloning a hobby?] by [[Tord Romstad]], [[CCC]], September 21, 2020</ref>).
It can read and write [[Chess Game|chess games]] in [[Portable Game Notation|PGN format]] (including support for comments and variations),
create [[Opening Book|opening books]], and interact with [[:Category:UCI|UCI chess engines]] <ref>[https://romstad.github.io/Chess.jl/dev/#Introduction-1 Home ยท Chess.jl]</ref>,
for instance to play engine versus engine matches for [[Automated Tuning|tuning]] and [[NNUE]] training purposes.

=Types=
Chess.jl features following data types and [https://en.wikipedia.org/wiki/API APIs]. Scalar data types like [[Squares]] and [[Pieces]] with discrete enumerated value range are internally wrapper around integer.
* [[Squares]]
** [[Files|SquareFile]]
** [[Ranks|SquareRank]]
* [[Bitboards|SquareSet]]
* [[Pieces]]
** [[Pieces#PieceTypeCoding|Piece Type]]
** [[Color|Piece Color]]
* [[Chess Position|Board]]
* [[Moves]]
** [[Make Move|UndoInfo]]
** [[Move List|MoveList]]
* [[Chess Game]]
** [[Portable Game Notation|PGN format]]
* [[Opening Book]]
* [[UCI]] [[:Category:UCI|Chess Engine]]

==SquareSet==
The SquareSet aka Bitboard API <ref>[https://romstad.github.io/Chess.jl/dev/api/#Square-Sets-1 API Reference ยท Chess.jl]</ref>
provide [[General Setwise Operations|setwise operations]] including [[General Setwise Operations#ShiftingBitboards|shifts]], and piece-wise attack getter -
for [[Sliding Piece Attacks|sliding pieces]] from a given square and [[Occupancy|occupancy]].
There are also [[BitScan|functions]] to [[Bitboard Serialization|transform]] a SquareSet into a vector of squares.

==Board==
Using a chess board object through a [https://en.wikipedia.org/wiki/Julia_(programming_language)#Interaction Pluto] <ref>[https://github.com/fonsp/Pluto.jl GitHub - fonsp/Pluto.jl: ๐ŸŽˆ Simple reactive notebooks for Julia]</ref> or [https://en.wikipedia.org/wiki/Project_Jupyter#Jupyter_Notebook Jupyter notebook],
features a graphical board, along with a board representation link in [[Lichess|lichess]].

=See also=
* [[python-chess]]

=Forum Posts=
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75040&start=74 Re: Is cloning a hobby?] by [[Tord Romstad]], [[CCC]], September 21, 2020
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=77210 Chess.jl โ€“ new version] by [[Tord Romstad]], [[CCC]], April 30, 2021

=External Links=
* [https://romstad.github.io/Chess.jl/dev/ Home ยท Chess.jl]
* [https://romstad.github.io/Chess.jl/tutorial/ ๐ŸŽˆ chess-jl-tutorial.jl โ€” Pluto.jl]

=References=
<references />
'''[[Utilities|Up one Level]]'''

Navigation menu