Lila is a free, open source chess engine written in Java.
Furthermore, this project is a UCI chess engine, which means that it does not contain an interface/gui, but is purely text-based.
You can either run it from the command prompt via java -jar lila.jar
or use a chess GUI (e.g. Cute Chess) in order to use it more conveniently.
A compiled binary can be found here.
Coming soon...
The Universal Chess Interface (UCI) is a standard protocol used to communicate between chess programs, and is the recommended way to do so for typical graphical user interfaces (GUI) or chess tools.
The following UCI options, which can typically be set via a GUI, are available in Lila:
-
The number of CPU threads used for searching a position. For best performance, set this equal to the number of CPU cores available.
-
The size of the hash table in MB.
Lila supports most of the regular commands included in the UCI protocol, but also has some special commands.
Name | Arguments | Description |
---|---|---|
uci | - | The UCI startup command. |
isready | - | Used to synchronize the chess engine with the GUI. |
setoption | name [value] | Sets an option to a specific value. For buttons, simply omit the value argument. |
ucinewgame | - | Tells the engine that a new game has started. |
position | [fen | startpos] moves | Sets up a new position. |
go | depth movetime wtime btime movestogo winc binc |
Starts a new search with the specified constraints. |
stop | - | Ends the current search as soon as possible. |
d | - | Prints the current position (used for debugging). |
eval | - | Shows the evaluation of the current position (used for debugging). |
perft | [depth] | Executes a perft call to the specified depth. |
quit | - | Stops the program and eliminates all searches that are still running. |
The following table shows the wins, losses, draws and the Elo gain compared to the respective previous version.
Version | Wins | Losses | Draws | Elo gain | Production ready |
---|---|---|---|---|---|
3.0.1 | 92 | 0 | 8 | +234 | β |
Here you can see the current structure of the project.
ββ π bins/ # β¨ Binaries
ββ π src/ # π Source Files
β ββ π de/lila/ # βοΈ Source Code
ββ π CODE_OF_CONDUCT.md # π Code of Conduct
ββ π LICENSE # βοΈ MIT License
ββ π README.md # π Read Me!