Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Question regarding perft

Author: Peter Fendrich

Date: 13:30:42 12/14/04

Go up one level in this thread


On December 14, 2004 at 14:55:41, E. Nielsen wrote:

>Hi,
>
>We have got this little strange 'challenge' with our move-generator... ;-)
>
>There is this one perft-test from
>http://homepages.caverock.net.nz/~peter/perft.htm
>that fails from depth 3.
>
>r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq -
>
>We get:
>perft 1
>Total moves=48             [ok]
>perft 2
>Total moves=2039           [ok]
>perft 3
>Total moves=97898          [should be 97862 i.e 36 positions less]
>perft 4
>Total moves=4087387        [should be 4085603 i.e 1784 positions less]
>
>
>Is there anybody who has any idea on where such an error could originate?
>
>
>Thanks in advance
>Eyưun Nielsen

One good method here that I lerarned from the program "Sharper" is to write
another function (I call it perftm).
It does exactly what perft does but for each move in the position.
You will get something like:

------------------------------
>r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq -
perftm 3 (48 moves) =
0 Be2xa6 : 1907
1 Qf3xf6 : 2111
2  g2xh3 : 1970
3  d5xe6 : 2241
4 Ne5xg6 : 1997
5 Ne5xd7 : 2124
6 Ne5xf7 : 2080
7 Qf3xh3 : 2360
8   d5d6 : 1991
9  Bd2e3 : 2136
10 Bd2f4 : 2000
11 Be2d3 : 2050
12 Be2c4 : 2082
13 Ne5c6 : 2027
14 Ne5d3 : 1803
15 Ne5c4 : 1880
16 Bd2g5 : 2134
17 Be2b5 : 2057
18 Nc3b5 : 2138
19 Ne5g4 : 1878
20 Bd2c1 : 1963
21 Bd2h6 : 2019
22 Be2d1 : 1733
23 Be2f1 : 2060
24 Ke1g1 : 2059
25 Ke1c1 : 1887
26 Nc3a4 : 2203
27  g2g4 : 1843
28  g2g3 : 1882
29  b2b3 : 1964
30  a2a3 : 2186
31  a2a4 : 2149
32 Nc3d1 : 2040
33 Ra1d1 : 1885
34 Qf3d3 : 2005
35 Qf3e3 : 2174
36 Rh1g1 : 2013
37 Ra1b1 : 1969
38 Ra1c1 : 1968
39 Rh1f1 : 1929
40 Qf3g3 : 2214
41 Qf3f4 : 2132
42 Qf3g4 : 2169
43 Qf3f5 : 2396
44 Qf3h5 : 2267
45 Nc3b1 : 2038
46 Ke1d1 : 1894
47 Ke1f1 : 1855
Total: 97862
----------------------------
Now compare the each moves figures with the right ones and select a move that
differs.
Make the move and do "perftm 2", compare again and so on. When you've reached
"perftm 1" you see exactly what move is missing.

You need a prgram to compare your numbers with. Download Sharper from
http://www.albert.nu/programs/sharper/main.htm
My "perftm 3" is called "divide 3" in Sharper.

/Peter



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.