Laveno
This is Laveno One, a pure Elixir chess engine. It includes board representation, game state management and valid moves generation as well as a set of board state evaluators with finders. A finder is a game play brain to actually play a game. It has UCI support, which enables using a chess GUI to interact with the engine.
Laveno exposes a handy API for each of it's components.
How to play
mix escript.build
./lavenoSo it is ready to recieve UCI commands
printf 'uci
isready
position startpos moves e2e4
go wtime 1000 btime 1000 winc 0 binc 0
quit
' | ./laveno --finder alphabeta-negamax-ets | catyou should see
id name laveno.one 0.2.0
id author Corral-Corral, Ricardo
uciok
readyok
info depth 2 score cp -1 nodes 0 time 0 pv c7c5
bestmove c7c5Installation
If available in Hex, the package can be installed
by adding laveno to your list of dependencies in mix.exs:
def deps do
[
{:laveno, "~> 0.2.0"}
]
endDocumentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/laveno.