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.
It requires a Java 17+ virtual machine.
Download the jar here, then Launch the engine with the following command: java -jar chesslib-uci-engine.jar
You can use an opening library located at a URL using the openingsUrl
system property.
Currently such a library is available here.
To use this library, launch the engine with:
java -DopeningsUrl=https://fathzer-games.github.io/chesslib-uci-engine/masters-shrink.json.gz -jar chesslib-uci-engine.jar
- 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 classcom.fathzer.jchess.chesslib.ChessLibMoveGeneratorTest
has commented assertions that currently fails.
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.
- The detection of invalid UNSAFE move does not work (An issue is opened in Chesslib project about this problem).