Menu

Tree [r147] /
 History

HTTPS access


File Date Author Commit
 .settings 2011-07-10 albertoruibal [r116] Carballo 0.6: Splitted code in subprojects inte...
 applet 2012-05-23 albertoruibal [r147] Option to indicate if legality check must be done
 core 2012-05-23 albertoruibal [r136] Option to indicate if legality check must be done
 jse 2012-05-23 albertoruibal [r140] Weird error test
 old 2010-02-08 albertoruibal [r52] outdated by pgn class
 target 2009-09-20 albertoruibal [r1] Initial import
 testresults 2010-10-26 albertoruibal [r96] latest results
 webtv 2012-05-23 albertoruibal [r146] computer vs computer mode
 .classpath 2011-07-10 albertoruibal [r119]
 .project 2011-07-10 albertoruibal [r119]
 carballo.png 2009-09-20 albertoruibal [r1] Initial import
 license.txt 2009-11-21 albertoruibal [r32] added license
 pom.xml 2011-07-10 albertoruibal [r112] Carballo 0.6: Splitted code in subprojects inte...
 readme.html 2011-07-10 albertoruibal [r112] Carballo 0.6: Splitted code in subprojects inte...

Read Me

<html>
<body>

<h1>Description</h1>

<p>Carballo (the galician word for Oak, well it's all about search trees)  is an Open Source Java chess engine hosted at <a href="http://sourceforge.net/projects/carballo/">http://sourceforge.net/projects/carballo/</a>, where you can download a UCI binary to play in interfaces like <a href="http://www.playwitharena.com">Arena</a>. Has the following features:</p>
<ul>
	<li>Simple and clear code (has 6000 lines aprox. excluding tests)</li>
	<li>Maven source code organization</li>
	<li>JUnit used for testing, multiple test suites provided (Perft, BT2630, LCTII, WAC, etc.)</li>
	<li>Based on Bitboards (not so complicated as other people say)</li>
	<li>State-of-the-art magic bitboard move generator (doubles the basic move generator speed!), also code for magic number generation</li>
	<li>PVS searcher</li>
	<li>Iterative deepening</li>
	<li>Aspiration window, moves only one border of the window if falls out</li>
	<li>Transposition Table (TT) with Zobrist Keys (two zobrist keys per board, to avoid collisions) and multiprobe/two tier</li>
	<li>Quiescent search with only good captures (acording to SEE) and limited check generation</li>
	<li>Move sorting: two killer move slots, SEE, MVV/LVA and history heuristic</li>
	<li>Also Internal Iterative Deepening to improve sorting</li>
	<li>Fractional Extensions: check, pawn push and passed pawns, mate threat, recapture (2 = 1PLY)</li>
	<li>Reductions: Late Move Reductions (LMR)</li>
	<li>Pruning: Null Move Pruning, Static Null Move Pruning, Futility Pruning and Aggressive Futility Pruning</li>
	<li>Polyglot Opening Book support; in the code I include Fruit's Small Book</li>
	<li>FEN notation import/export support, also EPD support for testing</li>
	<li>Pluggable evaluator function, distinct functions provided: the Simplified Evaluator Function, other Complete and other Experimental</li>
	<li>Parametrizable evaluator (only the complete &amp; experimental evaluators)</li>
	<li>Contempt factor</li>
	<li>Cute drag and drop Applet GUI, to fit in web sites</li>
	<li>UCI interface with lots of UCI options</li>
</ul>

<p>It scores 2387 ELO points at BT2630 tests in my Core2 Duo@2.2GHz. Also solves 277 positions of the 300 WinAtChess test (5 seconds for each). His real strength is about 2100 ELO points.</p>

<p>It is licensed under GPL, and you are free to use, distribute or modify the code but I ask for a mention to the original author and/or a link to my blog. I also put links in my source code to webs were I found information for coding.</p>

<h1>Test Results</h1>

<p>I made a Java Engines Tournament to compare Carballo against other chess engines at tournament time 5 minutes. Here are the results: (Those results are outdated, mow i'm running tests with Carballo 0.5 and more Java Engines, will show the results when finished)</p>

<pre>    Engine               Score      Ol    Fr    Me    Al    Ca    Cu    Br    Ar    Ch    Fr    JC    S-B
01: OliThink-5.3.0       45,0/50 ····· 01001 11111 11=11 11111 1=11= 1=111 11111 11111 11111 11111  966,25
02: FrankWalter-1.0.8    41,5/50 10110 ····· 11==0 11101 10011 10111 11111 11111 =1111 11111 11111  873,75
03: Mediocre-0.3.4       34,5/50 00000 00==1 ····· 0101= =1000 11101 11=11 11111 11111 11111 11111  613,00
04: Alf-1.0.9            33,5/50 00=00 00010 1010= ····· 1010= 10001 11111 11111 11111 11111 11111  575,50
05: Carballo-0.5         32,5/50 00000 01100 =0111 0101= ····· 1=001 =1011 1111= 11011 11111 11111  600,25
06: Cuckoo-1.0.4         32,0/50 0=00= 01000 00010 01110 0=110 ····· 111=1 1=111 11111 11111 =1111  563,00
07: Bremboce-0.6.2       21,0/50 0=000 00000 00=00 00000 =0100 000=0 ····· 10111 11=11 =1111 11111  256,75
08: ArabianKnight-0.55   14,5/50 00000 00000 00000 00000 0000= 0=000 01000 ····· 11=1= 110=1 11111  135,25
09: Cheoss-0.6.49        8,5/50  00000 =0000 00000 00000 00100 00000 00=00 00=0= ····· =1=== =1=0=  112,25
10: Frittle-1.0          8,0/50  00000 00000 00000 00000 00000 00000 =0000 001=0 =0=== ····· =111=   65,25
11: JChecs-0.1.0         4,0/50  00000 00000 00000 00000 00000 =0000 00000 00000 =0=1= =000= ·····   45,25

275 games played / Tournament is finished
Name of the tournament: JavaEnginesTournament
Site/ Country: JDEDEVELOPER5, España
Level: Tournament Game in 5 Minutes
Hardware: Intel(R) Core(TM)2 Duo CPU     T7500  @ 2.20GHz 2200 MHz with 752 MB Memory
</pre>
<br>

<h1>History</h1>

<b>Version 0.6:</b> Sorce code reorganization and PGN improvements

<ul>
<li>Code splitted in carballo-core, carballo-jse and carballo-applet</li>
<li>Carballo-Core is GWT-friendly</li>
<li>Integrated SAN notation on Board class</li>
<li>Improved PGN export with SAN notation</li>
</ul>

<b>Version 0.5:</b> Improves about 150 ELO points over Carballo 0.4

<ul>
<li>PVS searcher: SearchEngine completely changed</li>
<li>Futility pruning now works!</li>
<li>New TT algorithm, now also uses TT to store evaluation values</li>
<li>Bug with draw detection with 3-fold repetition</li>
<li>Bug with time management on tournament, was using the opponent's time amount</li>
<li>Bug with history table overflow</li>
</ul>

<b>Version 0.4:</b> First version integrated with Mobialia Chess
<ul>
<li>Parametrizable evaluator</li>
<li>Evaluator changes</li>
</ul>


</body>
</html>
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.