Perft for Checkers

Martin Fierz kindly extended his engine Cake with a perft feature. Luckily the numbers reported by Cake match the numbers reported by Checkers for Android exactly. Below the numbers from the start position are shown, hopefully useful data for aspirant checkers programmers.
    DEPTH   #LEAF NODES
=======================
     1            7
     2           49
     3          302
     4         1469
     5         7361
     6        36768
     7       179740
     8       845931
     9      3963680
    10     18391564
    11     85242128
    12    388623673

Comments

Aart Bik said…
Perft number for higher depths can be found at:
http://www.aartbik.com/MISC/checkers.html
Marius said…
Hey, I know the article is several years old, but I was wondering if you know about any ressources to find divide tables for 8x8 american checkers.

I have a move generator which returns divide(6) = 36834, and I have trouble figuring out where I messed up. I know you have tables for depths >= 17, but I cannot find any for shallower depths like 6 or 7.

If you have anything you can point me to to solve my problem I would greatly appreciate it! :)
Aart Bik said…
My engine BikMove has a built-in perft/divide feature (and was also the basis for the deep perft distributed experiments I published). Here is divide for 6 (but of course, for proper debugging, you will need to traverse into the mismatched position and perft-divide from there). I you posted the mismatch, I can post the divide for that position (we should find the bug in only 6 iterations!).

divide(6) =>
  0  : 12-16- : nodes=5979      
  1  : 11-16- : nodes=6805      
  2  : 11-15- : nodes=4289      
  3  : 10-15- : nodes=4659      
  4  : 10-14- : nodes=4265      
  5  :  9-14- : nodes=4133      
  6  :  9-13- : nodes=6638      
=> perft(6) = 36768
Marius said…
Hey, thank you, I already figured out where my problem was! I had an issue where some capture sequences were calculated multiple times. Now it seems to be working, and my perft() gives me the right numbers. Only tested to depth 10, but I am fairly confident it's working now correctly :) Thanks!

Popular posts from this blog

Checkers Move Generation

Connecting Chess for Android to a Remote Server

Connecting with the DGT Board