Skip to content

stylextv/lila

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

59 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation



β™ŸοΈ Source code of the Lila Chess engine, made with ❀️ in Java.

stars Codacy Badge Code size GitHub repo size Lines of Code

Overview

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.

Features

Coming soon...

Options

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:

  • Threads

    The number of CPU threads used for searching a position. For best performance, set this equal to the number of CPU cores available.

  • Hash

    The size of the hash table in MB.

Commands

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.
⚠️ Warning: Starting an unrestricted call locks the program at the moment.
quit - Stops the program and eliminates all searches that are still running.

Strength

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 ❌

Project Layout

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!