ExChess
ExChess is a, although still primitive, comprehensive implementation of the chess game rules in Elixir.
Installation
If available in Hex, the package can be installed
by adding ex_chess to your list of dependencies in mix.exs:
def deps do
[
{:ex_chess, "~> 0.1.0"}
]
endDocumentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/ex_chess.
Project structure
lib/*
lib
├── ex_chess
│ ├── board.ex
│ ├── fen.ex
│ ├── game.ex
│ ├── move.ex
│ ├── piece.ex
│ ├── square.ex
│ └── visualization.ex
├── ex_chess_core
│ ├── move_context.ex
│ ├── move_evaluation.ex
│ ├── move_generation.ex
│ ├── piece_patterns.ex
│ ├── piece_rules
│ │ ├── king_rules.ex
│ │ ├── knight_rules.ex
│ │ ├── linear_piece_rules.ex
│ │ └── pawn_rules.ex
│ ├── piece_rules.ex
│ ├── san.ex
│ ├── search.ex
│ └── state
│ ├── board_manager.ex
│ └── game_manager.ex
└── ex_chess.ex
The modules inside the ex_chess.ex file and ex_chess directory are the library's API, everything inside ex_chess_core is internal and only exposed via the ExChess module.