Kanguruh v1.93

Kanguruh is a 32bit Winboard compatible chess engine developed in PowerBASIC Console Compiler 3.04. Kanguruh was an experimental project to combine features I liked in my firt chess program Deep BASIC with the Quick BASIC chess program Minimax written by Dieter Steinwender and Chrilly Donninger. The end result is a chess program stronger than Minimax and Deep BASIC. I achieved this by adding features such as an opening book system, learning, evaluation cache, pondering, better time management, converted it from 16bit DOS program to 32bit Windows and a better evaluation function.

Please note that I have no plans to continue working on Kanguruh. I am working on a new chess engine developed using FreeBASIC which may be released sometime in 2008.

Opening book system:

Kanguruh has over 96,000 positions in it's opening book database. The positions are extracted from thousands of games played by players with an Elo rating equal to or greater than 2600. I have developed a tool which sorts through all the positions extracted from PGN files and provides statistics on each move such as win/draw/lose percentages, frequency , no. of games played and highest rated player to play this move etc. The new opening book tool is used to filter out moves that do not perform well, have too few games played, is not played by a player with a rating greater than 2600 Elo and is not a popular line. The maximum depth of Kanguruh's opening book is set to 15 moves (30 ply).

Kanguruh can also store statistical information about other chess engines that has been extracted from PGN files. Kanguruh can look up information about an engine and find which opening lines that engine plays the least well and then choose to play those opening moves against that engine.


As an experiment I made a change to the way Kanguruh decides which move to play from the opening book. Instead of looking up the current chess position in the opening book database and choosing the move with the highest score, Kanguruh now performs a 8 ply search in the opening book. The search is very similar to a normal search when Kangurhu is thinking except it gets all the scores and moves from the opening book database. The opening book search depth is adjustable by editing the kanguruh.ini file.

Book Learning:

After each game Kanguruh records statistics on which opening book moves were played, what result was achieved, how many moves were played and which engine it played. Kanguruh keeps separate statistics for each chess engine that it plays. In other words, what Kanguruh learns from playing one engine is not applied when it plays another engine.

Search Engine:

Kanguruh uses a offset move generator to produce pseudo legal moves stored in a move stack. Kanguruh uses a standard iterative deepening alpha beta search with aspiration windows. It also uses a killer move table to improve move ordering and the qsearch has check extensions.

Kanguruh opening book tool.

Strength of Kanguruh:

Kanguruh v1.92a WBEC rating : 1833

Kanguruh v1.90 RWBC rating  : 1721

Kanguruh v1.87 Labans rating: 1846

Tournament history:

* 7th place in 2003 Australasian National Computer Chess Championship (NC3).
Click here for analysis of games played by Kanguruh at NC3 2003.

* 8th place in division 6 WBEC edition 7. Division 6 had 54 engines participating.

* 12th place in 2004 Australasian National Computer Chess Championship.

* 9th place in 2005 Australasian National Computer Chess Championship.

* 10th place in division 1 2006 Australasian National Computer Chess Championship.


Download Kanguruh v1.93 - 2MB (Updated 19 January 2008)

Any questions, bugs to report or suggestions?
You can contact me on the following email address - Thomas McBurney