Skip to content

A basic UCI engine based on the bhlangonijr/chesslib move generator

License

Notifications You must be signed in to change notification settings

fathzer-games/chesslib-uci-engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

A basic UCI engine based on the bhlangonijr/chesslib move generator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages