Leokom Chess is a Java-based chess engine. The engine is using Chess Engine Communication Protocol for communication with any existing GUI that supports the protocol.
Leokom Chess doesn't include any GUI. If you are a bot you can play with it using command line :) If you are a human being you should deploy it to your favourite Chess GUI software.
The chess software is developed for fun. It should proof that OOP and TDD principles can lead to quality game software.
Initial creator is Leonid Rozenblyum (the last name could also be spelled as Rozenblium according to Ukrainian transliteration rules)
Main goals for version1 are:
- support Chess Engine Communication Protocol (http://home.hccnet.nl/h.g.muller/engine-intf.html) This protocol is one of de facto standards in communicating between a chess GUI and an engine. The well-known GUI implementations are XBoard/Winboard.
- Probably the fastest way to implement is to take into account the 'Minimal protocol' document http://home.hccnet.nl/h.g.muller/interfacing.txt
- know about all chess rules (including ambiguities with the 3'd position repetition and insufficient material)
- be able to choose at least random 'correct according to rules' move.
- Git clone
- Set up Winboard
- Modify variables.bat:
- Set up correct WINBOARD_INSTALLATION_PATH
- Set up correct JAVA_PATH
- Default (recommended) way
mvn clean package -Dproject.deployDirectory="path to set up"
(-DskipTests=true
if you feel brave; avoidclean
phase if your IDE has already compiled the code).- runEngine.bat
- New way (requires M3_HOME variable set up)
- runEngineDev.bat
Due to SonarCloud analyzing of pull requests, the branch names should follow the pattern: they can only contain 'A-Z', 'a-z', '0-9', '-', '_', '.', and '/'.
- settings.xml must contain valid credentials for release uploading to GitHub
<servers>
<server>
<id>github</id>
<username>...</username>
<password>...</password>
</server>
</servers>
-
pom.xml: github-release-plugin configuration contains meaningful description for the current release
-
current release tag name is the same as Maven version (so in release 0.3 the tag name must be 0.3)
mvn clean deploy
The release consists of:
- source code in *.zip
- source code in *.tar.gz
- binaries in *.zip
Full overview: https://sonarcloud.io/dashboard?id=leokom-chess