Skip to content

Latest commit

 

History

History
36 lines (26 loc) · 2.86 KB

README.md

File metadata and controls

36 lines (26 loc) · 2.86 KB

Maven Central License Quality Gate Status javadoc

chesslib-uci-engine

A basic UCI engine based on the bhlangonijr/chesslib move generator, and the games-core alpha beta search algorithm implementation. It uses the evaluation functions, the remaining move oracle and some other things from the chess-utils library.

You can play against it on Lichess. It runs on a Minisforum U300 with 3867U processor.

How to run the engine

It requires a Java 17+ virtual machine.

Download the jar, then Launch the engine with the following command: java -jar chesslib-uci-engine.jar

Openings library

You can use an opening library located at a URL using the openingsUrl system property.
Currently such a library is available in data/masters-shrink.json.gz, but this location may change in the future.

To use this library, launch the engine with:
java -DopeningsUrl=https://github.com/fathzer-games/jchess/raw/branch-first/src/main/resources/lichess/masters-shrink-full.json.gz -jar chesslib-uci-engine.jar

Known bugs

  • The chesslib library method Board.doMove(m,true) used to safely play moves from transposition table plays illegal moves as if they were legal.
    An issue has been posted to GitHub, as the probability of occurence of this bug is low, I'll wait for an answer...
    The test class com.fathzer.jchess.chesslib.ChessLibMoveGeneratorTest has commented assertions that currently fails.

Developer notes

Tests settings

The com.fathzer.jchess.chesslib.PerfTTest class tests moves generation algorithm using a perfT data base.
The duration and accuracy of this test greatly depends on its search depth.
This depth is 1 by default (to limit Github's resources consumption - Every push trigger a mvn test action). In order to perform better test, you can set the perftDepth system property to a higher value.

TODO

  • The detection of invalid UNSAFE move does not work.