Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kortirso/chess
Elixir package for playing chess
https://github.com/kortirso/chess
chess chess-engine elixir elixir-library
Last synced: 14 days ago
JSON representation
Elixir package for playing chess
- Host: GitHub
- URL: https://github.com/kortirso/chess
- Owner: kortirso
- Created: 2018-11-04T10:35:43.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-08-19T15:21:43.000Z (5 months ago)
- Last Synced: 2024-12-28T12:25:33.651Z (21 days ago)
- Topics: chess, chess-engine, elixir, elixir-library
- Language: Elixir
- Size: 91.8 KB
- Stars: 12
- Watchers: 2
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# Chess
Chess package for playing chess, with game logics, validations.
## Installation
If [available in Hex](https://hex.pm/docs/publish), the package can be installed
by adding `chess` to your list of dependencies in `mix.exs`:```elixir
def deps do
[
{:chess, "~> 0.4.2"}
]
end
```## Start new game
```elixir
# 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
## Make move
```elixir
Chess.play(%Chess.Game{}, "e2-e4")
```After valid move game object will contain new figure's position and FEN-notation
### Pion's promotion
Add third option if pion achives last line, one from [q|n|r|b], default - q
```elixir
Chess.play(%Chess.Game{}, "e7-e8", "q")
```### Castling
To make castling move:
```elixir
Chess.play(%Chess.Game{}, "0-0")
Chess.play(%Chess.Game{}, "0-0-0")
```## TODO
- [X] Create game
- [X] Create game from FEN-notation
- [X] Figure movements
- [X] Pion's en passant
- [X] Castling
- [X] Checkmate
- [X] Checking possible checkmate for next turn
- [X] Pion's promotion at last line
- [ ] Draw
- [ ] Using PGN
- [ ] Manual change game's status## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/kortirso/chess.
## License
The package is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
## Disclaimer
Use this package at your own peril and risk.
## Documentation
Documentation can be generated with [ExDoc](https://github.com/elixir-lang/ex_doc)
and published on [HexDocs](https://hexdocs.pm). Once published, the docs can
be found at [https://hexdocs.pm/chess](https://hexdocs.pm/chess).