Description

Kingsrow International is a program that performs a variety of functions relating to the board game of 10x10 International Draughts. While you can use it to play games against the program, its primary use is for analysing positions and games, finding mistakes or alternate lines of play, and determining game results of win, draw, or loss. The key strengths are its parallel search engine, which makes efficient use of the power of today's multi-core computers, and its large endgame databases.


Features

  • Parallel search engine with selection from 1 to 8 search threads. One search thread can be used for each core in your computer.
  • Endgame databases with win, draw, and loss information for up to 8 pieces.
  • Opening book containing approximately 2.4 million positions that are likely to be encountered in the first 30 plies of the game.
  • Both 32-bit and 64-bit program executables.
  • Analyze games interactively by moving through a game using the forward and backward toolbar commands.
  • Analyze games using either a normal search or an Allscores search which gives the search scores of all the moves.
  • Analyze multiple games automatically with results written to a text file.
  • Play games against the computer.
  • Play automated matches against other programs using the DamExchange protocol.
  • Use copy and paste to transfer PDN games and FEN positions between Kingsrow and other programs.
  • Load games and save games between PDN files and Kingsrow.
  • Per move or per game search time controls.
  • Multi-window user interface uses familiar Windows controls. It does not require any optional runtime environments such as .NET or additional .dlls and should run on any generic Windows installation.
    • Toolbar icons for frequently used functions.
    • Resizable text windows with font and background color selection.
    • Fully resizable board window with optional square numbers and selectable black/white orientation.
    • Flexible control of endgame databases including subset selection, enable/disable, and cache size setting.
    • Enable or disable saving settings on exit, reset all settings to defaults, reset only window setups to defaults, ...


Requirements

  • Window 7, 8, Vista, or XP, either 32-bit or 64-bit version.
  • To use the 7-piece db, 1.5GB of RAM minimum.
  • To use the 8-piece db, 2GB of RAM minimum, and more is recommended. With 32-bit versions of Windows you will probably be restricted to using at most 2GB for Kingsrow, even if your computer has as much as 4GB. With 64-bit versions of Windows there are no such restrictions.
  • Disk space requirements depend on database subsets installed.
    • 2 through 7 pieces requires 4.7GB
    • 2 through 8 pieces requires 55.6GB


Program Installation

Installing the Kingsrow International draughts program

There are two versions of the Kingsrow executable program file -- a 32-bit and a 64-bit version. If your computer is running a 64-bit version of Windows then you should install the 64-bit version of Kingsrow, otherwise install the 32-bit version. If you are not sure which version of Windows you have, then try to install the 64-bit version first. The 64-bit install program will give you an error right away if your Windows is a 32-bit version. The 64-bit version is faster and also allows access to much more RAM.

The setup programs for installing Kingsrow are on a web server. When you purchase Kingsrow you receive an email with information about downloading the setup programs. If you need this information then send an email to Ed Gilbert.

Run the setup program and follow the prompts to complete the installation. I recommend that you leave the check in the box "Create a start menu entry" in the Additional Tasks screen as it also gives you shortcuts for the user documentation and uninstall.

Program activation

The first time you run Kingsrow it will present you with the license agreement and ask you to accept it to continue. You can read the text of the license agreement here.

After accepting the license agreement you will see this program activation screen:

Follow the instructions and email the Registration ID to Ed Gilbert at eygilbert@gmail.com. You will receive a reply containing a License Key which you can copy and paste into the box provided and then click the OK button to activate.

About License Keys

Purchasing Kingsrow gives you the right to run it on two of your computers. This is enforced through the use of License Keys. Each License Key is tied to the hardware of one of your PCs -- its CPU, BIOS, hard drive, and ethernet adapter. If you replace your computer or upgrade your hardware then you will need to obtain a replacement key from Ed Gilbert.

Uninstalling Kingsrow International

You can uninstall Kingsrow using the using the Uninstall shortcut in your Kingsrow International program group, which is accessible in Start, Programs. Uninstalling Kingsrow International does not affect your License Key. If you had a valid License Key when you uninstalled then it will still be valid if you later reinstall the program.

If you don't have an Uninstall shortcut, you can uninstall it using these steps:

  1. Go to the Control Panel on your PC. Usually you can get to this by clicking on Start, Settings, Control Panel.
  2. Click on Add or Remove Programs.
  3. Scroll down to Kingsrow International, click it once to select it, then click the Remove button.


Installing the WLD Databases

Installing the WLD Database

The WLD database is very large and you should make sure you have enough free space on the drive on which you plan to install it. The disk space needed for several typical configurations is given in the Requirements section.

The database must be installed on a hard drive that is using the NTFS file system. The hard drives on most Windows computers are already configured this way, but some external hard drives are formatted as FAT32. You can determine the type of file system on a drive by viewing its properties in Windows Explorer. If the drive that you intend to use for the database is FAT32 you can use a Windows convert utility to change it to NTFS. Do an internet search for "convert FAT32 to NTFS" and you will find some information at the Microsoft web site that explains how to do this.

Installing from the USB hard drive

  1. The external hard drive containing the databases is shipped with a USB cable. Connect one end of the USB cable to the hard drive, and connect the other end to a USB port on your computer. Be sure to connect directly to a USB port on your computer and not indirectly through a USB hub.
  2. It will take a few seconds for your computer to detect that a new hardware device has been connected and to assign a drive letter to the new drive. When this happens you will probably see a popup message from your system tray that says something like "Found new hardware."
  3. Using Windows Explorer, browse to the program file Kingsrow_International_WLD_Setup.exe on the USB hard drive and run it by double-clicking on the filename.
  4. Follow the prompts as directed by the setup program. When you get to the screen Select Destination Location you can use the Browse button to select something different than the default location.
  5. An image of the Select Components screen is shown below. When you get to this screen you can choose to install all files or only some subsets. Kingsrow will discover which subsets you have and use them, however you must have the subset with "...up to 1 king on a side" to be able to use the other subsets with the same number of pieces. Leave the settings as they are if you are installing all of the files. Put a check mark next to the components that you want to install. The numbers at the right of the subsets are the disk space required, and the total disk space needed for all the checked components is shown at the bottom of the screen. Install all the subsets if you have enough disk space, as you can select which components to use later using controls within Kingsrow. There is also a pre-configured set of components named Small 8-piece installation that requires much less disk space than the full installation. To select the small install, click on the arrow at the right side of the dropdown selection box (where it says "Full installation"), and change the selection.
  6. Once the setup program begins installing the database files it will run unattended until it is finished. If you are installing all the files it can take 12 hours or longer depending on the speed of your computer.
  7. Set your Windows Virtual Memory setting to the same size as the RAM that is installed in your PC.
    • Click Start, Settings, Control Panel, System, Advanced, Performance Settings, Advanced, and click the Change button for Virtual Memory. The exact sequence to get to your Virtual Memory setting may be slightly different depending on your installation of Windows.
    • If your computer has 2GB RAM, then set the Initial Size and the Maximum Size to 2048.
    • If your computer has 4GB RAM, then set the Initial Size and the Maximum Size to 4096.
    • If your computer has 8GB RAM, then set the Initial Size and the Maximum Size to 8192.
    • If your computer has 16GB RAM, then set the Initial Size and the Maximum Size to 16384.
  8. After the database is installed you can configure Kingsrow to use it in the menu Options, Endgame db and Hashtable.

Installing the 7pc db from DVDs

  1. Insert the DVD labelled "Disk 4" into your DVD drive.
  2. Using Windows Explorer, browse to the program file Kingsrow_Intl_7pc_WLD_Setup.exe on the DVD and run it by double-clicking on the filename.
  3. Follow the prompts as directed by the setup program. When you get to the screen Select Destination Location you can use the Browse button to select something different than the default location.
  4. After the files are installed, follow steps 7 and 8 in the previous section "Installing from the USB hard drive".


Installing the MTC Databases

Installing from the USB hard drive

  1. The external hard drive containing the databases is shipped with a USB cable. Connect one end of the USB cable to the hard drive, and connect the other end to a USB port on your computer. Be sure to connect directly to a USB port on your computer and not indirectly through a USB hub.
  2. It will take a few seconds for your computer to detect that a new hardware device has been connected and to assign a drive letter to the new drive. When this happens you will probably see a popup message from your system tray that says something like "Found new hardware."
  3. Using Windows Explorer, browse to the program file Kingsrow_International_MTC_Setup.exe on the USB hard drive and run it by double-clicking on the filename.
  4. Follow the prompts as directed by the setup program. When you get to the screen Select Destination Location you can use the Browse button to select something different than the default location.
  5. Installing the files takes about 40 minutes.
  6. After the MTC database is installed you can configure Kingsrow to use it in the menu Options, Endgame db and Hashtable.

Installing the 7pc MTC db from DVDs

  1. Insert the DVD labelled "Disk 4" into your DVD drive.
  2. Using Windows Explorer, browse to the program file Kingsrow_Intl_7pc_MTC_Setup.exe on the DVD and run it by double-clicking on the filename.
  3. Follow the prompts as directed by the setup program. When you get to the screen Select Destination Location you can use the Browse button to select something different than the default location.
  4. After the MTC database is installed you can configure Kingsrow to use it in the menu Options, Endgame db and Hashtable.


Software License Agreement

License Agreement

Please read this agreement carefully. To use the software, you must accept this agreement. If you choose Decline, you cannot continue to use the software.

This software is owned by Ed Gilbert. This agreement does not provide you the title or ownership of the software, but only a limited right of use. Each purchased copy of the software entitles you to run it on up to two computers that you own. This is enforced in the software through the use of License Keys. Ed Gilbert will provide you via email with License Keys for up to 2 of your computers when you install the software. He will also supply a reasonable number of replacement License Keys in the event you should need a new License key for a computer upgrade, reinstall of Windows, etc..

You may not decompile, reverse engineer, disassemble or otherwise reduce the software to a human perceivable form. You may not modify, rent or resell for profit the software, or create derivative works based upon the software.

Ed Gilbert does not warrant that the software will meet your requirements, nor that the operation of the software will be uninterrupted or error-free. He does not warrant that the endgame databases are error free. The software is provided 'AS IS.'

There are no other warranties with respect to the software. Ed Gilbert disclaims all other warranties, express or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose or those arising from trade usage or course of dealing. No oral or written information or advice given by the Ed Gilbert shall increase the scope of the above warranties or create any new warranties.

In no event will Ed Gilbert be liable to you for damages, whether based on contract, tort, warranty, or other legal or equitable grounds, including any loss of profits, lost savings, or other incidental or consequential damages arising out of your use or inability to use the software, even if Ed Gilbert has been advised of the possibility of such damage. Ed Gilbert's entire liability and your exclusive remedy shall be at Ed Gilbert's option to either return the price paid for the software or repair or replace the software. This limited warranty does not apply if the failure of the software has resulted from accident, abuse or misapplication. In no event shall Ed Gilbert's liability exceed the purchase price of the software.


Making moves

To make a move, first click on the piece that you want to move, then click on the square that you want to move to. If there is only one move that can be made by the piece that you select, then Kingsrow will make that move without waiting for you to click the destination square.

Kingsrow highlights the squares that you select by drawing a white frame around the border of the square. This highlight is removed when the move is completed. If you are using Kingsrow in a search mode where it makes response moves, it will briefly highlight the from and to squares when it makes its move.

Sometimes with moves that capture multiple pieces there is more than one way to make the move between the source and destination squares. In these cases you can click on additional squares to uniquely describe the move. Additional squares can be either the squares of opponent's pieces that are jumped, or intermediate squares where you piece lands during the capture sequence.

To illustrate, try this rather contrived example. Highlight the following FEN position with the mouse, copy it to the Windows clipboard using CTRL-C, then click on the Kingsrow program window and paste the position into Kingsrow using CTRL-V (or using the menu Edit, Paste from Clipboard).

B:W9,12,13,23,32,33,42,43:BK48.

This should setup the board with a black king on 48 and eight white men setup for a complex capture move. Suppose you want to make the capture this way: 48x39x28x14x3x21x38x47. First click on the source square 48, then click on the destination square 47. These two squares are highlighted, but Kingsrow does not move yet because there are two ways to move from 48 to 47. You can start clicking the intermediate squares that Kingsrow lands on during the capture, first 39, then 28, and when you click on 14 Kingsrow makes the move because it then has enough information to know unambiguously which move you are making. In fact you don't need to click 39 and 28, you can simply click on 14 and Kingsrow will make the move. You could instead click on 48, 47, and then square 9 and that also is enough information for Kingsrow to make the move.


Toolbar commands

The toolbar icons give quick access to frequently used commands. If you hold the mouse above an icon, a bubble description will be displayed.

These buttons move forward or back through the current game. As an alternative, you can also use the keyboard navigation keys Home, left arrow, right arrow, and End

This button toggles the color of the side to move.

When the 'Go' button is visible, it starts a search. When the 'Stop' button is visible, it stops a search.


Understanding search results

Kingsrow uses numeric search values to indicate its evaluation of the board position.

  • It uses the convention that positive values are good for black, negative good for white.
  • The value of a man is 100.
  • A large positive or negative value of magnitude greater than 2000 indicates that Kingsrow sees a database win or database loss.
  • A value close to 4000 or -4000 indicates that Kingsrow sees the end of the game. The distance of the value magnitude from 4000 indicates the number of plies needed to reach the end of the game. For example, a value -3980 means that the position is a white win and the game will end in 20 plies (half moves).
  • Values of +1, -1, +3, -3, +5, or -5 indicate an endgame database draw.
  • Values of +7 or -7 indicate a draw by repetition.

A Normal search

Kingsrow displays search results in the search window along the bottom of the main program window. A typical search looks something like this:

value=-2, depth 17/22.5/41, 15.4s, 3630kN/s, pv 39-33 17-22 28x17 11x31 36x27 6-11 44-39 11-17

In this example:

  • -2 is Kingsrow's assessment of the value of the position. -2 means very close to even, a very slight advantage for white.
  • Depth shows the nominal search depth, the average leaf node depth, and the maximum search depth, in units of plies. One ply is a move by one side. Kingsrow searches some lines deeper than the nominal depth and others are searched to less than the nominal depth.
  • 15.4s indicates the elapsed time of the search.
  • 3630kN/s indicates the search speed in thousands of nodes per second.
  • pv indicates the principal variation, or line of best play. Because Kingsrow uses a type of search known as MTD-f, its display of principal variation (beyond the first move) is not always accurate or indicative of the best play, therefore you should not place too much importance on it.

An opening book move

If the opening book is enabled, Kingsrow might pick a move from the book instead of doing a search. A typical search window display from a book move looks like this:

19-24(0/24)* 20-25(0/28)* 17-22(0/30)? 17-21(0/30)? 19-23(0/26)? 18-22(0/26)? 20-24(-2/25)? 18-23(-2/24)? 16-21(-6/17)?

After each book move in parentheses are the value of the move and the book depth along that line of play. If the move has an asterisk after it then Kingsrow considers the quality of the move high enough to play it, based on your opening book setting. If the move has a question mark after it, Kingsrow will not play it. This does not necessarily mean it's an inferior move. At any position Kingsrow limits the number of book moves that it will play so that it can expand the selected lines more deeply.

An Analysis allscores search

If the search mode is set to Analysis allscores, then the search results will look something like this:

depth 14, 22.7s, 24-29,2 17-21,2 2-8,2 17-22,0 20-25,-2 9-14,-2 4-10,-2 3-8,-8 16-21,-98 24-30,-106 18-22,-212 23-29,-324 23-28,-330

It shows the nominal search depth, the search time, and each move along with its search value. The moves are sorted from left to right with the best moves at the left. If there is a large number of moves then there may not be enough space to display some of the weakest moves.

A result from the MTC database

If the board position is a database win or database loss with at most 8 pieces present, then Kingsrow might decide the best move using the MTC database. The displayed results depend on whether the position is a win or a loss. If Kingsrow is finding the best move in a won position, the displayed results might look like this:

3-26(133)* 3-25(137) 3-20(137) 3-9(137) 3-8(139)

The moves shown are only the moves that preserve the win, i.e. moves leading to draws or losses are not displayed. The values in parentheses are the distances in plies to the next conversion. Since Kingsrow is in a winning position it picks the move with the shorted distance to a conversion.

If Kingsrow is in a lost position the displayed results might look like this:

49-16(140)* 12-3(120) 12-26(44) 49-32(24) 49-43(22) 12-34(?) 12-40(?) 12-45(?) 12-17(?) 12-21(?) 12-23(?) 12-8(?) 49-21(?) 12-7(?) 12-1(?) 49-44(?) 49-40(?) 49-35(?) 12-29(?) 49-38(?) 12-18(?) 49-27(?) 48-43(?) 48-42(?)

Kingsrow is in a loss and every move keeps it in a loss so all the moves are shown. The values in parentheses are again the distances in plies to the next conversion. The moves that have a (?) instead of a numeric distance are moves leading to positions that are not in the MTC database because the distance to conversion for these positions is less than 10 plies. Kingsrow picks the move with the greatest distance to a conversion because it is in a loss and wants to postpone the end of the game for as long as possible. The moves are sorted from left to right with the best moves at the left. If there is a large number of moves as in this example then there may not be enough space to display some of the weakest moves.


How Do I...

Setup a board position?
Use the commands in the Edit menu. Edit, Setup Mode and Edit, Clear Board. You can change the side to move using the side color icon on the toolbar.

Play a game against Kingsrow playing white and I play black?
Give the New Game command in the Game menu, then click the GO button on the toolbar. Kingsrow will make the first move as white, then you can play a black move, etc.

Tell Kingsrow to do searches so I can see the results, but not make moves?
Use the Search Mode, Analysis command in the Options menu.

Save a position so I can recall it later?
Copy the position to the Windows clipboard using the Copy Position to Clipboard command in the Edit menu. From there you can save it to a file by pasting it into an editor such as Notepad. To recall it later you can copy it to the clipboard from Notepad and paste it into Kingsrow using the Paste from Clipboard command in the Edit menu.

Save the current game so I can recall it later?
Use the Save... command in the Game menu. Later you can use the Load... command to recall it. Alternatively, you can copy and paste the game into a file using CTRL-C or the Copy Game to Clipboard command in the Edit menu.

Verify that Kingsrow is using the 8-piece databases?

  • Look in the Status window. It should say Egdb: Ready.
  • Setup an 8-piece position and let it search. The search score should show an immediate database win, draw, or loss result. For example, you can copy and paste this position W:W24,35,50:B1,6,7,11,16. into the board and click the GO button on the toolbar. Kingsrow should move immediately and show a search score of 3 which indicates a database draw.
    Note that for database wins or database losses, Kingsrow does not stop searching immediately. It uses heuristics to find the shortest or longest path to a conversion depending on whether it is searching a won or lost position. However if the position is found in the MTC database then it will return a result immediately.

Know for certain that a position is a win or draw or loss?
A search value above 2000 or below -2000 is a guaranteed database result of black win or white win. There is no corresponding certainty of a database draw however, since draw scores are compared to heuristic values in the same range, and heuristic values can be incorrect. As a practical matter, even if we cannot always declare an exact result with absolute certainty, we would like to know when a position is a win, draw, or loss with a high confidence, say probability better than 90%. For this I use the following rough guidelines:

  • I consider a search value of at least 400 (or -400) a conclusive result of a black win (or white win). I cannot remember ever seeing a position with a search value of this magnitude using the 8 and 9 piece databases and then later find that the position is a draw.
  • For draws, the confidence of a database draw score depends on how many pieces are on the board and how quickly the search returns the first database draw score. If there are 20 pieces on the board and after I search for several minutes I finally see a search score of database draw, then this is not a conclusive result. If there are 14 pieces on the board and I see a database draw score at depth 15, then 17, then 19 plies, then this is a draw that I consider conclusive.

Get better performance from Kingsrow?
Buy more RAM, and use a 64-bit version of Windows. RAM is now inexpensive, so get at least 6 or 8 GB, and 12 or 16 is even better. You have to have a 64-bit version of Windows to use this much RAM. The 64-bit version of Kingsrow also searches about 30% faster. Also, you can search faster if your computer has more cores. With a quad core computer you can set the number of search threads to 4 and get nearly 4x the search speed of a single core.


Files

Kingsrow creates a data directory under your username in the Windows Documents directory tree and uses this directory to write various files. The exact path of this Kingsrow data directory depends on which version of Windows your computer is running, and your username, which is represented as the italicized username in the paths below:

Windows XP: \Documents and Settings\username\My Documents\Ed Gilbert\Kingsrow International

Vista: \Users\username\Documents\Ed Gilbert\Kingsrow International

Windows 7: \Users\username\My Documents\Ed Gilbert\Kingsrow International

You can browse to this directory using Windows Explorer. Many PCs also have either a username or a My Documents shortcut on the desktop which conveniently opens an instance of Explorer that you can use to navigate to the Kingsrow data directory. Another way to open an instance of Window Explorer is to right-click on the Start button, then click Explore.

In this Kingsrow data directory are written the following text files:

Kingsrow.log This file contains some search results for every position that is searched during the last Kingsrow program session. It may also contain some startup information.

egdb.log This file contains initialization progress and error messages for the endgame database driver during the last Kingsrow program session.

dxpgames.pdn If you run a DamExchange match against another draughts program, this file will contain every game of the match.

dxpstats.txt If you run a DamExchange match against another draughts program, this file will contain the statistics of wins, losses, draws, and unknown results of the match. If you resume a partially completed match, Kingsrow will read this file to determine how many games had been played so it knows where to resume from.

analysis.txt If you use the Analyze game or Analyze PDN commands the analysis will be written to this file. Kingsrow will overwrite any previous results each time you use these commands so you should move or rename this file if you want to save the results.


Analyzing Games and Positions

Analyzing a complex position

In this section I will demonstrate how you can use Kingsrow to analyze a position to determine conclusively if it is a win, loss, or draw. The example position is from a game played by Woldouby. It is well known and has occurred in many other tournament games. It has apparently been long debated whether black wins or if white can escape with a draw. The FEN respresentation of the position is: W:W25,27,28,30,32,33,34,35,37,38:B12,13,14,16,18,19,21,23,24,26. You can copy and paste this position into Kingsrow using the Edit menu to follow along with the analysis.

For this analysis I am using a 3-year old PC with an Intel Q6600 quad core CPU and 8GB of RAM. I have set the hashtable size to 512mb because I am going to be searching some positions for at least a minute or two. The WLD database cache size is set to 6000mb. In the text below I have copied each search result from the Kingsrow log file to paste it into this document. The formatting of the log entries is a little different than what you see in the search window.

There are 20 pieces on the board, too many for Kingsrow to get a conclusive result from a single search in any reasonable length of time. After pasting the position into Kingsrow, I start by setting the search time to Infinite and the search mode to Analysis allscores to see what options white has starting out.

time 88.97s, depth 21, nodes 18565452, 34-29,108 25-20,220 27-22,688 37-31,2450 28-22,2582 33-29,3986

It looks like white's best chances to draw are with 34-29. We only need to find one way to draw. If this line does not end up well we can come back and try 25-20 later. Play 34-29 23x34 30x39 and search again.

time 52.14s, depth 20, nodes 14895060, 18-23,110 12-17,-3 24-30,-702 24-29,-780 14-20,-988 19-23,-2668 26-31,-2704 18-22,-2716

18-23 is black's only chance for a win here. 12-17 was showing database draws for the last few plies of the search, and anything else is worse. Play 18-23 and continue searching.

time 62.48s, depth 21, nodes 22125596, 39-34,112 27-22,156 35-30,236 25-20,318 28-22,932 37-31,3972 33-29,3990

39-34 looks best here. Again we only need to find one path to a draw for white. We can always come back to this position and try 27-22 later if 39-34 does not end up drawing or is inconclusive. Play 39-34 and search.

time 13.42s, depth 18, nodes 6633245, 13-18,138 12-17,3 24-30,-1 12-18,-118 23-29,-504 26-31,-774 24-29,-2550 14-20,-2618

I stopped this search rather quickly because all moves except 13-18 were showing database draw or worse from the very start. Play 13-18 and search, it is black's only option.

time 48.94s, depth 19, nodes 12861656, 25-20,112 28-22,236 35-30,236 34-29,606 34-30,658 27-22,658 37-31,2590 33-29,3986

25-20 looks best here, but again we have other possible options for white if the first choice doesn't pan out. Play 25-20 and search.

time 80.08s, depth 23, nodes 103572701, 14x25,40 24x15,3

24x15 was showing database draws for the last 2 plies, leading to the conclusion that 14x25 is black's only option. Play it and continue searching.

time 11.69s, depth 18, nodes 5139842, 28-22,46 34-29,752 34-30,892 35-30,2458 27-22,2574 37-31,2706 33-29,3992

There is only one choice here for white. Play 28-22 and continue.

time 38.27s, depth 19, nodes 23405562, 23-28,46 25-30,1 12-17,1 24-30,-314 23-29,-578 24-29,-2470 26-31,-3978

Black's only choice is 23-28. All other moves were showing draw or worse from the start. Play 23-28 32x14 and continue searching.

time 15.14s, depth 19, nodes 24504167, 21x41,40 21x43,3

21x41 22x13 is the only choice. Play this and search.

time 19.23s, depth 17, nodes 28976543, 41-47,58 41-46,3 12-18,3 25-30,3 16-21,3 12-17,1 26-31,-1 24-30,-1 24-29,-3

41-47 is the only choice. Play this and search.

time 51.22s, depth 17, nodes 39725811, 35-30,66 34-30,348 14-9,364 38-32,410 13-8,558 13-9,648 34-29,836 33-29,2624 14-10,3980 33-28,3994

35-30 24x35 is the clear choice for white. Play and search.

time 58.83s, depth 18, nodes 32401118, 14-10,38 13-9,2488 34-29,2504 13-8,2504 14-9,2578 34-30,2628 33-29,3996 33-28,3998 38-32,3998

White has to play 14-10. Everything else is a black win. At this point I felt it was time to do a deeper search and see if a database draw can be found. If not we can go back and try some of the earlier white alternatives. If we can find a conclusive draw right here then we are done, as every black move up to this point has effectively been forced. By that I mean that none of black's alternatives to the ones we played showed any possibility of doing better than a draw. I changed the search mode to Analysis as this provides a faster search than the Analysis allscores that I had been using, and for this search we only care about the value of the best move.

best 47-41, value 7, depth 22/23.9/36, nodes 946030288, time 763.84, 1239 kN/s, db 311151717, pv 47-41 10-4 41-14 33-29 26-31 13-9 14x3 4x36 3-8 36-41 12-18

After about 12 minutes I get a draw score of 7. With 11 pieces remaining on the board this is pretty close to being a conclusive result, but I like to see a draw score for several successively deeper depths during the search before I call it conclusive.

Since I noticed that black had several reasonable moves at this position, I decided that this is a good place to backtrack and try one of the white alternatives that we noted earlier. To continue here will get more complicated and time consuming. Looking back at the first few moves

34-29 23x34 30x39 18-23 39-34

we see that there were other white choices at 34-29 and at 39-34. I chose to examine next the alternative to 39-34 for two reasons. The other move there, 27-22, looks a little stronger than the alternative at 34-29, and there are a few forced moves that occur along this line. Use the toolbar navigation commands to go back to the position after 34-29 23x34 30x39 18-23, and then play 27-22 and start an Analysis allscores search.

time 18.69s, depth 19, nodes 4718021, 12-18,160 12-17,3 21-27,-270 26-31,-1032 13-18,-2566 23-29,-2572 14-20,-2574 24-30,-3972 24-29,-3976

12-18 is black's only choice. Play it and continue searching.

time 54.05s, depth 19, nodes 9445027, 39-34,158 35-30,322 22-17,870 33-29,2472 25-20,2512 37-31,2586 32-27,2706

39-34 18x27 looks best for white. Play it and search.

time 45.55s, depth 19, nodes 6373492, 34-30,158 35-30,374 25-20,1232 33-29,2488 37-31,2518 28-22,2534 34-29,2534

Play 34-30 and continue.

time 13.76s, depth 18, nodes 3725666, 13-18,160 26-31,3 23-29,-1 27-31,-3 24-29,-264 14-20,-696

13-18 is black's only choice. Play and continue.

time 25.15s, depth 20, nodes 7585029, 28-22,110 33-29,2502 37-31,2694 25-20,3972

28-22 is white's only choice. Play and continue.

time 12.61s, depth 17, nodes 1907168, 23-28,160 23-29,-288 24-29,-528 14-20,-636 26-31,-1060 27-31,-2460

23-28 32x12 27x7 is black's only choice. Play and continue.

time 97.60s, depth 21, nodes 13134286, 33-28,3 38-32,110 37-32,2518 37-31,2532 33-29,2604 25-20,2788

33-28 showed a database draw for at least the last 5 plies, so this meets my criteria for a conclusive result. We can conclude that the position from the Woldouby game that we set out to analyze is a draw. The analysis took about 1/2 hour, and now that we know about the 27-22 defense, if we have to do it again we can demonstrate a conclusive draw in only a few minutes.

[FEN "W:W25,27,28,30,32,33,34,35,37,38:B12,13,14,16,18,19,21,23,24,26."]
1. 34-29 23x34 2. 30x39 18-23 3. 27-22 12-18 4. 39-34 18x27 5. 34-30 13-18 6. 28-22 23-28 7. 32x12 27x7 8. 33-28 1/2-1/2


Running automated matches against another program

DamExchange matches

DamExchange is a protocol designed by Frank Mesander that allows two draughts programs to communicate and play games over a TCP/IP connection. A full description of DamExchange can be found at Frank's web site

The first step in running a DamExchange match is that the two programs need to establish a connection. One of the programs must listen for and accept connection requests, and the other program must make a connection request. After a connection is established, one of the programs takes on the role of a DXP Initiator by sending a request to start the first game to the other program. Included in the game request are details about the start position, which sides play black and white, and the time controls for this game and all subsequent games. The other program, which is called the Follower, can accept this request, and then the match is started and moves are exchanged. As the game progresses, either side can choose to end it. Included in the message to end the game is the reason for ending it. Four possible reasons are defined by the protocol: I win, I lose, I declare a draw, or no reason. After each game, only the Initiator can request to start another game. In this manner a match continues until either the Initiator stops sending new game requests, or the Follower refuses to accept a request.

To command Kingsrow to listen for requests from another program, use the menu Game, Wait for DXP connection. If you later want it to stop listening for requests you can give the menu command Game, Terminate connection.

To make a connection request to another program, use the menu Game, Make DXP connection... A hostname dialog is provided for you to enter either the IP address or the hostname of the computer on which the other program is running. If the other program is running on the same computer as Kingsrow, enter the local loopback address 127.0.0.1.

After a connection is established, you can start a match with Kingsrow as the Initiator by giving the command Game, Start match.... This brings up a dialog in which you can enter the maximum number of moves for each game and the maximum time that each side can use. If Kingsrow sees a dxpstats.txt file in the Kingsrow data directory with partial match results present, it will provide a Resume a previous match checkbox. If you check this box, the previous match will be resumed at the game where it was stopped.

When Kingsrow is the Initiator it plays a match of consisting of a large number of games using either 2-move or 3-move start positions. These are the positions reached after all possible sequences of the first two or three moves from the normal game start, except that the sequences that immediately lose a man are omitted. Each program gets to play one game with the black pieces and then another with the white pieces for each of these start positions. The purpose of the large variety of start positions is to avoid duplicate games. There are 79 2-move start positions (158 games) and 494 3-move positions (988 games).

Kingsrow maintains win/loss/draw/unknown statistics during the match and displays them in the program title bar. As each game is finished, it writes the statistics to the file dxpstats.txt, and it writes the game moves to the file dxpgames.pdn. These files are written in the Kingsrow data directory.

Kingsrow will declare a game won if its search returns a database win value, or a loss if its search returns a database loss value. It will declare a game drawn after it has seen 6 successive search scores of either database draw (+/-1, 3, or 5), or draw by repetition (+/-7), and if there are no more than 16 pieces remaining on the board. If a conclusive result is not reached after the maximum number of moves that were established for the games then the result is declared as unknown and the next game is started.

Other draughts programs

As of this writing I am aware of 3 publicly available programs that are capable of running DamExchange engine matches. The one that is most accessible is Dam2.2 by Harm Jetten which is a free download. There is also Truus and Flits, which are available for purchase from the KNDB, and for which I have written console server programs which allow these programs to participate in a DamExchange match. There should be links for downloading these at the Kingsrow International web site.

Step by step instructions for running an automated match between Kingsrow and Dam2.2

Before starting this match you should consider how to prevent the two programs from interfering with each other if they are both running on the same computer. The interference can come from competing for CPU resources and for RAM. If they're running on different computers then of course this is not a concern. To prevent CPU interference you only need to turn off Pondering in Kingsrow. Dam2.2 automatically turns off its pondering feature during DamExchange matches. To avoid RAM contentions you may need to reduce the size of the endgame database cache in Kingsrow so that there will be memory for Dam2.2 to use for its caching. If you have the 6-piece db for Dam then you should try to make a few hundred megabytes of RAM available for its use.

  1. Run Dam and set it to listen for connection requests using the menu Game, DamExchange, Wait for connection.
  2. Run Kingsrow and set it to connect to Dam using the menu Game, Make DXP connection...
  3. Enter the IP address or hostname of the computer which is running Dam. If both programs are on the same computer then enter 127.0.0.1
  4. Set Kingrow to use its opening book by using the menu Options, Opening book, Best moves.
  5. You may want to open DamExchange windows in both programs so you can see the connection status and the communications between the programs. In both programs this is the same menu -- Window, DamExchange.
  6. In Kingsrow give the command Game, Start Match... Enter 75 for Number of moves, and 5 for Time for moves. Do not check Resume a previous match.
  7. Click the Accept button in the window that pops up in Dam.
  8. After Kingsrow makes its first move, Dam will not start until you click on the Dam program window to make it the active window, and then press the Tab key.


Running Multiple Instances of Kingsrow

If you have Kingsrow installed on a server with lots of RAM and cores, you may find it useful to run several instances of Kingsrow simultaneously. The program is designed to operate correctly in this type of environment so that there are no conflicts with log files and other files written in the Kingsrow data directory. If you run Kingsrow when there is already at least one instance running, the new instance gets a numeric suffix added to its name, and this suffix is also added to the names of any data files written in the data directory. For example, if you run a second instance, the title bar will show the program name as Kingsrow International[1], the program log file will have the name Kingsrow[1].log, etc. Additional concurrent instances will have suffixes of [2], [3], etc.

The primary concerns with running multiple instances are allocation of RAM and cores. You need to configure each instance so that the sum of all the endgame db cache and hashtable sizes does not exceed the physical RAM in the machine, and make sure that you do not have more search threads searching simultaneously than the number of cores in the machine.


Game menu

New sets the board position and side to move to the start of a new game.

Load... lets you to load a game from a PDN file. First you browse to a file, and then you can view the header information of each game of the selected file in a list box showing approximately the first 120 characters of each game, so you can select one to load. This is ok for PDN files with a maximum of perhaps a few thousand games, but since there is no facility to search for a game by player name or board position, it is not practical for files containing tens of thousands of games. If you try to load from a file that has more than about 20,000 games Kingsrow will refuse with an error.

Save... lets you save the current game. A game information screen lets you enter descriptions of the event, date, players, and the game result. Then you can browse to select a file to save the game into. The game is appended to the file.

PDN header... lets you enter information about the current game. If you later Save the game or copy it to the windows clipboard, this information will be included along with the game moves.

Analyze game starts an automated analysis of the current game. The position prior to each move is searched, and the search results are written to the file analysis.txt which is saved in the Kingsrow data directory. When the analysis is finished Kingsrow will launch the program that has the association for .txt files to display analysis.txt.

Analyze game allscores is similar to Analyze game, except that each search is an allscores search which gives the search score for every move.

Analyze PDN... starts an automated analysis of all the games in PDN file. You can browse to select a file, and then the position prior to each move of each game in the file is searched. The search results are written to the file analysis.txt which is saved in the Kingsrow data directory. When the analysis is finished Kingsrow will launch the program that has the association for .txt files to display analysis.txt.

Analyze PDN allscores... is similar to Analyze PDN, except that each search is an allscores search which gives the search score for every move.

Cancel Analyze stops a game analysis that was started by any of the Analyze game or Analyze PDN commands.

Make DXP connection... creates a DamExchange connection to another draughts program. The other program must be waiting to accept connections. A hostname dialog is provided for you to enter either the IP address or the hostname of the computer on which the other program is running. If the other program is running on the same computer as Kingsrow, enter the local loopback address 127.0.0.1.

Wait for DXP connection causes Kingsrow to listen for connection requests from another draughts program.

Start match... begins a DamExchange match with another draughts program. It can only be given after a connection has been established. Kingsrow will be the Initiator of the match, which means that it selects the start positions and time controls of the games. A dialog window is displayed that allows you to set the time controls. If you previously played a match that was not completed, the dialog will also give you the option to resume the previous match.

Terminate connection closes a DamExchange connection. If a match is in progress, it is stopped.

Reset settings to default sets all of Kingsrow's settings to some (hopefully) sensible default values.

Save settings now saves most of Kingsrow's settings so that they can be recalled the next time the program is run.

Save settings on exit enables or disables the automatic saving of Kingsrow settings when you exit the program. Each time you select this menu the state of this feature is toggled. There is a check mark next to the menu when the feature is enabled.

Exit terminates the program.


Edit menu

Setup mode allows you to set up an arbitrary position on the board. Clicking on this menu toggles the setup mode on or off. In this mode the left mouse button is used to select the black pieces and the right button the white pieces. Clicking repeatedly on a square cycles through the choices of man, king, and empty square. Turn setup mode off when you are done setting a position by clicking again on the Setup mode menu command.

Clear board removes all the pieces from the board. If Setup mode was not already on then this menu command turns it on.

Paste from Clipboard loads either a PDN game or a FEN position which has been copied into the Windows clipboard. PDN and FEN are loosely defined standards for representing draughts games and positions in text format. You can get an idea of what these formats look like by giving the menu commands Copy Game to Clipboard and Copy Position to Clipboard. Kingsrow will try to interpret almost any text with moves in it as PDN. Usually you can copy a list of moves from an email or web page and paste them into Kingsrow, even if the list does not have a PDN header or terminator.

Copy Game to Clipboard sends PDN formatted text of the current game to the Windows clipboard. You can then paste this text into another program or document, or later paste it back into Kingsrow.

Copy Position to Clipboard sends a FEN formatted string of the current position to the Windows clipboard. You can later paste this string into Kingsrow or another draughts program to restore the position.

Invert Board reverses the orientation of the board display. For example, if square 1 is at the lower right corner of the board, then Invert Board will display it at the upper left corner.

Square Numbers toggles the display of square numbers on and off.


Time menu

1 sec/move, 2 sec/move, ...: These choices allow you to select the average time that Kingsrow uses for a search (to calculate its move). The longer you let it search each move, the stronger it plays. Kingsrow will use anywhere from one half to 4 times the value you select. Over the course of a game the search time will average out to approximately this value.

Game Clock allows a game to be played where a set number of moves must be made within a maximum period of time.

Moves sets the number of moves for the game.

Minutes sets the time limit for each opponent.

Operator time sets the time that the operator uses to make the opponent's move on the Kingsrow board. This is typically used when a match is played with an external game clock. Kingsrow adds the operator time to its search time as it keeps track of the time it uses.

Start can be used to start the game clock. This command is typically not necessary because the game clock is automatically started whenever Kingsrow's opponent makes a move.

Stop pauses the game clock.

Reset stops the game clock and sets the game time and the number of moves played to 0.


Options menu

Search Mode controls the way the Kingsrow searches and makes moves. The Search Mode is one of the few program settings that is not saved with Game, Save settings now or Save settings on exit. Kingsrow always starts in Normal mode.
Normal: in this mode you play against Kingsrow. Each time you make a move, Kingsrow will play the next move for the other side.

Analysis: Kingsrow searches each position that you enter, but does not make a response move. You can use this mode along with the Forward and Back toolbar buttons to analyze a game. Each time you scroll to another game position Kingsrow will start searching it, displaying values and other statistics in the search window at the bottom of the main program window. It is often useful to set the Search Time to Infinite for Analysis so that Kingsrow will keep searching for the full time that you stay at each position.

Analysis allscores: this mode is similar to Analysis, except the Kingsrow calculates and displays a search value for every move. This type of search is much slower than a normal search that only gets a value for the best move, but it can be useful for exploring alternate lines of play. The difference in speed between allscores and a normal search is such that a normal search will sometimes go 3 or 4 plies deeper in the same length of time, so you should not use allscores when you only need to know the value of the best move.

2 Players: this mode allows you to make the moves for both sides. Kingsrow does not do any searching in this mode.

Autoplay: in this mode Kingsrow makes the moves for both sides.

Endgame db and hashtable

Parallel search: Kingsrow detects when it is running on a computer with multiple processor cores and can use a separate search thread for each core to increase the search speed. This dialog displays the number of cores that are detected and lets you to set the number of search threads that are used. Kingsrow can use a maximum of 8 parallel search threads. If your computer has a processor with hyperthreading, then each real core might get reported as 2 cores. In this case you will probably find that Kingsrow works best with the number of search threads set to one less than the number of cores reported. For example, if your processor is a quad core with hyperthreading, Kingsrow will report 8 cores, but set the number of search threads to 7.

The table below shows some search speed measurements made on an 8-core 2.5GHz dual Xeon computer.

Average search speed to depth 18 at start position vs. number of search threads
Search threads | Search speed in KN/sec
1 | 2827
2 | 5276
4 | 9890
6 | 13734
8 | 17129

Opening book: selects one of 4 operating modes for the opening book. Best moves means that Kingsrow will play only moves that the opening book generator considers best and has expanded the furthest. Use this setting if you want it to play its strongest game. Good moves are moves that have a book score equal to the score of the best moves, but may not be expanded as far as the best moves. Use this setting if you want relatively strong play and a greater variety of moves. All kinds of moves are moves that have a book score within 10 points of the best moves. Use this setting for the greatest variety of book moves. If more than one move meets the criteria of the book setting, then Kingsrow will select one of them randomly. No book means that the opening book is not used.

Pondering toggles this option on and off. When on, Kingsrow searches for its next move while it is the opponent's turn. This effectively gives it more search time and allows it to play a stronger game. If you want to see the details of the ponder searches you can enable the Ponder Window using the Window menu.

Sound toggles the sound option on and off. When on, Kingsrow makes a click sound when it makes its moves.

Language selects the language of the program menus, window text, and help file. To use the Russian language option, you will probably need to enable the Cyrillic system fonts by changing your Windows system locale to Russia.

  • Windows 7: Go to Control Panel, Region and Language, Administrative tab, "Change System Locale...", and select Russia.
  • Windows XP: Go to Control Panel, Regional and Language Options, Advanced tab, and select Russian in "Language for non-unicode programs".


Windows menu

Kingsrow has several windows that can be turned on or off (made visible or not) using the Windows menu. Each time you select one of these menus the visibility state of the window is toggled. These windows can be moved and resized in the normal manner (drag them by the title bar, and resize using the lower right hand corner).

Clock: This window shows the elapsed game time for each side. The default state of this window is 'not visible'.

Game: This window shows the moves of the current game. The move that corresponds to the present board position is highlighted in a different color.

Status: This window shows the status of the endgame database initialization and the program search mode.

Egdb: Disabled indicates that you have not checked the WLD enable box in the Endgame db and Hashtable dialog which is under the Options menu.

Egdb: Uninitialized indicates that you have not started the WLD initialization. This occurs when you start the first search.

Egdb: Initializing indicates that the WLD db is being initialized.

Egdb: Ready indicates the WLD db has been initialized and is ready to be used.

Egdb: Init failed indicates that an error occurred during the WLD initialization. This can happen if Kingsrow was not able to allocate the cache memory size that you specified, or if it could not find the database files in the Directory that you have set. These settings are in the Endgame db and Hashtable dialog which is under the Options menu. Kingsrow creates an endgame database log file in the Kingsrow data directory. The name of the file is egdb.log. You can view this file using a text editor if you are having trouble resolving an Init failed problem.

Search mode: Normal indicates that Kingsrow will search and make a response move after each move you make.

Search mode: Analysis indicates that Kingsrow will search each new position but not make a response move.

Search mode: Analysis allscores is similar to Analysis except that Kingsrow shows a search value for every move.

Search mode: 2-Player means that Kingsrow will let you make moves but will not do searches or make response moves.

Search mode: Autoplay means that Kingsrow is playing both sides.

Search mode: Setup means that Kingsrow is in a mode that allows arbitrary positions to be set up using the left and right mouse buttons.

Search mode: Dxp Initiator means that Kingsrow is the DamExchange Initiator in an automated match against another program.

Search mode: Dxp Follower means that Kingsrow is the DamExchange Follower in an automated match against another program.

Search mode: Analyze game means that Kingsrow is analyzing the current game.

Search mode: Analyze PDN means that Kingsrow is analyzing all the games in a PDN file.

Ponder: This window shows the results of each ponder search. The default state of this window is 'not visible'. This window is probably more interesting to the program developer than to the typical user.

DamExchange: This window shows the messages that are exchanged between programs during a DamExchange match, as well as connect and disconnect events. The default state of this window is 'not visible'.

Font... brings up a font selection dialog that allows you to set attributes of the font used in the various text windows. These attributes include the face name, point size, and weight.

Background color allows you to choose between white or dialog gray backgrounds for the text windows.

Reset windows sets the size, position, enable/disable setting, font attributes, and background color of all the windows to default values.

In addition to the windows described above, there are two windows that are always visible:

The board window can be resized in the normal manner. It always maintains a square aspect ratio, and it cannot be moved. Its upper left corner is always anchored to the upper left corner of the program's client window area.

The search window at the bottom of the Kingsrow client area is used to display search results. This window is anchored in its location and cannot be moved. You can only change its width by resizing the main program window.


Help menu

Kingsrow Help opens this help file.

About Kingsrow shows program version information and acknowledgements.


Endgame Databases

Kingsrow uses two types of endgame databases -- win, loss, draw (WLD), and moves to conversion (MTC). The WLD databases supplied with Kingsrow have information for all positions of 8 pieces or less with up to 5 pieces on a side, and for the subset of 9-piece positions that are 5 men vs. 4 men (no kings). When a position is reached during a search for which a WLD database value is available, the value is obtained from the databases and often the search along that line can be stopped. Normally during a search the program uses heuristics to guide it to choosing the best move, but heuristics are inexact and can lead to mistakes. The WLD database values are exact, and they give the program much greater accuracy and strength of play when they can be used. It is not necessary for the game position to be 9 pieces or less for the databases to be useful. Because of the look ahead nature of a search, and draughts rules of forced captures, the databases can start having a noticeable effect on the search when there are as many as 18 pieces on the game board.

One challenge with the databases is the large number of positions that must be stored. The 8-piece subsets alone amount to 16.5 trillion positions, and even though this data is stored in a compressed format, it requires many gigabytes of space. Finding disk drives large enough to hold the data is not a problem, but disk access is measured in milliseconds, so a draughts program cannot afford to read from disk each time it needs to lookup a WLD value. Kingsrow uses a memory buffer as a cache for frequently accessed WLD values, and the larger it can make this cache the more effective it is in terms of cache hits and avoiding disk reads due to cache misses.

Before Kingsrow can look up positions in its endgame databases it need to initialize the software driver it uses to do the lookups. The initialization is a time consuming process. During initialization the driver has to read and save in memory a lot of indexing information so that it can quickly access a draughts position during a search. If you are using the full db, not just a subset, reading and saving the indexing information can take several minutes. The second step during driver initialization is to preload the cache buffer with data from positions that are likely to occur during a game. This means preloading data for positions that are either all men or almost all men, as these are the usually the first and frequently the positions that are most often needed during a typical game. The time it takes to preload the cache is directly related to the cache size. On a computer with 16GB of RAM the entire endgame driver initialization process takes about 6 minutes.

While the driver is initializing you can use all the features of Kingsrow, but the search does not use the endgame databases until the driver has finished initializing. The Status window shows the initialization status of the endame database driver. If you configured Kingsrow to use more than one search thread, one of these threads is consumed by the endgame database driver during initialization and is not available for use by the search until the driver initialization is finished.

Another challenge with the databases is the large amount of computing resourced needed to build them. The 8-piece subsets took 5-1/2 core years of computing effort to build. The only way to accomplish the job in a reasonable time is to subdivide it into a number of smaller tasks that can be performed in parallel. It requires complex concurrency algorithms and lots of computing power. You can read more about the project to build the 8-piece database at this web link: http://edgilbert.org/InternationalDraughts/8_piece_international_draughts_db.htm

MTC databases

The WLD databases give the exact game value of a position, but they do not tell you what the correct moves are to finish a game. For example, suppose you are playing white and it is your turn to move. There are 8 pieces on the board, so you lookup the position in the WLD database and find that it is a white win. Great, you will win! But there is still some work to be done. There are perhaps 14 legal moves for white in this position. You lookup the values of each of the 14 successor positions and find that 3 of them are white wins. Which one do you play? You cannot just play any move that leads to a win, because if there are kings on both sides then it is possible to play an endless series of moves always leading to another position that is a white win but in fact never makes any progress towards the conclusion of the game! You need to make moves that lead to conversion moves. These are moves that cannot be reversed. Capture moves are conversions, as are any move of a man. If you are in a won position you want to make the moves that have the shortest path to a conversion move. Similarly, if you are in a lost position you want to make the moves that have the longest path to a conversion move. This is where the MTC database is useful. For each position in the database it gives the distance to the next conversion move, so whether it is winning or losing Kingsrow can use this database to help decide which of the successor positions are best.

Unlike the WLD databases, the MTC databases are not needed during a search. They are only used when the current game position has few enough pieces that it can be looked up in a WLD database, and if the result is a win or a loss then the MTC database can provide the information needed for choosing the next move. Since only a few positions need to be looked up for each game board, there is no reason to cache this database in RAM.

The Kingsrow MTC databases are relatively small because they do not need to contain data for most positions. There is no need to store values for positions that are draws, that have capture moves, or for positions where one side has no kings, for each move by that side is a conversion move. But I have removed more than 99% of all remaining positions with a simple rule: there are no positions that are within 10 plies of a conversion. The reason is that Kingsrow can easily find the correct moves in these cases by doing a quick search. It only has to search to a depth of 10 plies to see the conversions.

You can download a zip file containing a list of the highest MTC positions in each database subdivision using this link. The positions are in FEN format and can be copied and pasted into Kingsrow.

The rules of 10x10 international draughts state that any game which goes for 25 moves without a conversion move is a draw. The Kingsrow databases effectively ignore this rule, and AFAIK there are no endgame databases that have been built that reflect this rule.


Opening Book

Kingsrow has an opening book of approximately 2.4 million positions. These are positions that are likely to occur during the first 30 plies of a game. Unlike many opening books this one is not based on the tournament games of strong draughts players. The book was created by a separate program doing searches using the Kingsrow search engine. The technique is called dropout expansion and is described in the paper "Strategies for the Automatic Construction of Opening Books" written by Thomas Lincke. The main purpose of the book is for use in matches with strict time controls. If a move can be picked from the opening book then it can be made instantly as it does not require any search time, thus it takes no time off the game clock and allows the time that would have been used to be added to other searches. Another advantage is that positions in the book can be searched for a longer time than might occur during a timed match and can thus benefit from the better evaluation that comes with the additional search time. Positions in the book also benefit from the propagation of search scores of successor positions that are also in the book. This effectively gives each opening book position greater search depth than just the depth of the engine search at that position. There is a nice introductory tutorial on dropout expansion written by Martin Fierz here at his web site.


Endgame db and Hashtable

This dialog lets you control these memory-hungry features of the program. These settings have a large affect on the strength of Kingsrow's search.

If you change the hashtable size, or change any of the WLD endgame db settings, then Kingsrow will have to re-initialize the endgame db on its next search. This can be a time consuming process so you don't want to change these settings very often!

Hashtable size: Kingsrow uses a hashtable to store information about positions that it has already evaluated. A larger hashtable allows it to look further ahead on long searches. 32mb is sufficient for single-threaded short searches of 2 or 3 seconds, but longer searches and searches using multiple search threads will benefit from larger settings. For casual use you can probably just set the hashtable to 128mb and leave it. If you're doing very long searches of several minutes or longer, a larger setting will help. But a large setting will have a negative effect on performance in quick games. To get the best performance in engine matches, use the following table as a guide:
Search Time | Search Threads | Hashtable Size
1 sec/move | 1 through 8 | 32 mb
2 sec/move | 1 thread | 32 mb
2 sec/move | 2 or more | 64 mb
5 sec/move | 1 thread | 64 mb
5 sec/move | 2 or more | 128 mb
10 sec/move | 1 thread | 128 mb
10 sec/move | 2 or more | 256 mb
30 sec/move | 1 thread | 256 mb
30 sec/move | 2 or more | 512 mb

WLD Endgame db: configures various settings for the WLD endgame database.

Enable: check this box to enable the use of a WLD database. Uncheck it if you have not installed one or if you have a special reason not to use one. If you check this box and an endgame database cannot be successfully opened for some reason, you will get a popup message box warning about this after each search.

Directory: shows the path to the WLD database files. Use the Browse button to select the directory.

Browse...: lets you browse to the directory where the WLD database files are located.

Check dir: lets you check if there are WLD database files in the directory given in the Directory box. This is only a quick check for the presence of some of the files. It does not test for all the files or verify their contents.

Verify Files: does a CRC verify of all the WLD database files. This button is enabled after the database has been initialized. It takes about 2 hours to verify all the files.

Cache size (mb): Kingsrow creates a cache buffer that stores the most recently used positions in RAM so they can be accessed quickly. The larger you can make this cache buffer, the more efficiently it will be able to lookup positions in the database. You should set the cache size to use whatever RAM is remaining after Windows has consumed what it needs, and considering the size of the hashtable. If you make the combination of your hashtable and endgame cache too large your searches will be very slow. The first time you run Kingsrow, or when clicking the menu command Game, Reset settings to default, the program looks at the total memory installed in your computer and picks some default settings for the Hashtable size and Cache size. Below are starting point recommendations for some typical configurations.

  • If your computer is running a 32-bit version of Windows:
    • If you have 2GB of RAM then set the Cache size to 1400mb and the Hashtable size to 128mb.
    • If you have more than 2GB of RAM then set the Cache size to 1600mb and the Hashtable size to 128mb.
  • If your computer is running a 64-bit version of Windows:
    • If you have 4GB of RAM then set the Cache size to 3000mb and the Hashtable size to 128mb.
    • If you have 8GB of RAM then set the Cache size to 6000mb and the Hashtable size to 128mb.

Max. pieces: You can use this option to restrict Kingsrow to using a subset of the WLD database containing only positions for some maximum number of pieces. Select "No limit" if you want to use all subsets.

Max. kings one side when 8 pieces: You can use this option to restrict Kingsrow to using a subset of the 8-piece WLD files. If your PC has less than 4GB of usable RAM you may want to exclude some of the king-heavy subsets because of the memory overhead of indexing this data. For example, if you set the max kings to 2, then Kingsrow will not try to use the database for any 8-piece positions where either black or white has more than 2 kings. Select "No limit" if you want to use all 8-piece subsets.

Initialization: This control lets you choose how the endgame database driver is initialized. In most cases you will want to leave this set to in parallel with search. If you select before search then Kingsrow waits until the driver is completely initialized before starting the first search. If you select in parallel with search, then Kingsrow can do searches while the driver is initializing, but the endgame databases will not be used until the driver initialization is completed. In either case, the initialization starts when you start the first search.

MTC Endgame db: MTC is an abbreviation for "moves to conversion". This type of database is used when the game position is a database win or database loss. The WLD db gives the win/loss/draw status of the position, but it does not have any information about what the best move is to finish the game. When there are kings present, it is possible that the winning side can keep making moves that maintain its winning status without making progress towards finishing the game. A conversion move is a move that is not reversible, i.e. a man move or a capture move. The MTC database allows Kingsrow to pick the move that has the shortest path to a conversion when it is in a won position, or the longest path to a conversion when it is in a loss.

Enable: check this box to enable the use of an MTC database.

Directory: displays the path to the MTC database files.

Browse...: lets you browse to the directory where the MTC database files are located.

Check dir: checks if there are MTC db files in the Directory.


Windows Explorer

Windows Explorer is a Microsoft program that is found on all Windows systems. It allows you to do many operations with files -- browse, copy, rename, delete, run, etc. You will use it to run the setup programs when you install Kingsrow and the endgame databases.

To run Windows Explorer, use the right mouse button to click on the Windows Start button, then click on Explore. Alternatively, there is usually a shortcut for it in the Accessories folder under Start, Programs.