Chess package for playing chess, with game logics, validations.
If available in Hex, the package can be installed
by adding chess
to your list of dependencies in mix.exs
:
def deps do
[
{:chess, "~> 0.4.2"}
]
end
# start new game
Chess.new_game()
# or initialize game from FEN-notation
Chess.new_game("rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1")
New game will be created with squares and figures, FEN-notation, and game's status
Chess.play(%Chess.Game{}, "e2-e4")
After valid move game object will contain new figure's position and FEN-notation
Add third option if pion achives last line, one from [q|n|r|b], default - q
Chess.play(%Chess.Game{}, "e7-e8", "q")
To make castling move:
Chess.play(%Chess.Game{}, "0-0")
Chess.play(%Chess.Game{}, "0-0-0")
- Create game
- Create game from FEN-notation
- Figure movements
- Pion's en passant
- Castling
- Checkmate
- Checking possible checkmate for next turn
- Pion's promotion at last line
- Draw
- Using PGN
- Manual change game's status
Bug reports and pull requests are welcome on GitHub at https://github.com/kortirso/chess.
The package is available as open source under the terms of the MIT License.
Use this package at your own peril and risk.
Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/chess.