albertoruibal / carballo

Carballo Chess Engine
GNU General Public License v3.0
69 stars 39 forks source link

Carballo Chess Engine

Release

Carballo (the galician word for Oak, it's all about search trees) is an Open Source Java chess engine with three interfaces:

It is organized into modules:

It is licensed under GPLv3 and the source code is hosted at https://github.com/albertoruibal/carballo. You are free to use, distribute or modify the code, we ask for a mention to the original authors and/or a link to our pages.

Features

Test results in a Intel Xeon CPU limited to 2.0GHz for consistency:

Test suite Time per position Version 1.8 Version 1.7
WinAtChess (New) 1 second 293/300 293/300
SilentButDeadly 1 second 125/134 125/134
ECMGCP 1 second 113/183 112/183
ECMGCP 5 seconds 156/183 154/183
Arasan 19a 60 seconds 52/200 52/200

His real strength is about 2400 ELO points, you can check his tournament rankings at http://www.computerchess.org.uk/ccrl/

Authors

Building

Carballo uses the Gradle build system and the gradle wrapper.

Build all the jars and install them to your local Maven repository:

./gradlew publishToMavenLocal

UCI Interface

Build the UCI interface (creates a carballo-${version}.jar in jse/):

cd jse
../gradlew proguard

Running the UCI interface:

cd jse
java -jar carballo-1.8.jar

HTML5 Interface

Build the GWT interface:

cd gwtgui
../gradlew compileGwt

Running the GWT interface:

cd gwtgui
../gradlew appRun

and access with your web browser to http://localhost:8080/chess/

Desktop Interface

Building the Swing interface (creates a carballo-swing-${version}.jar in swing/):

cd swing
../gradlew proguard

Running the Swing interface:

cd swing
java -jar carballo-swing-1.8.jar

Testing

Run tests:

./gradlew test

Run the "Win at Chess" test suite:

cd jse
../gradlew slowTest --tests=WinAtChessTest

Run the "Silent but Deadly" suite:

cd jse
../gradlew slowTest --tests=SilentButDeadlyTest

Changelog

Version 1.8: Java 11, new desktop application and source code improvements

Version 1.7: A new Late Move Reductions (LMR) formula

Version 1.6: Refactoring, bug fixes, endgames, etc.

Version 1.5: More search and evaluation tuning

Version 1.4: Another step in the engine strength

Version 1.3: A lot of work in the evaluation function for a better positional play

Version 1.2: A new MoveIterator, Chess960 and lots of UCI improvements

Version 1.1: Urgent bug fix for 1.0

Version 1.0: Lots of fixes, small advances in test results: 294 in WAC (5") and 2520 in BT2630.

Version 0.9: Fixes evaluator bugs

Version 0.8: Build system and GWT modifications

Version 0.7: A small leap on the engine performance and a big code clean

Version 0.6: Source code reorganization, GWT and PGN improvements, no changes on the engine code

Version 0.5: Improves about 150 ELO points over Carballo 0.4

Version 0.4: First version integrated with Mobialia Chess