Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: New Endgame Test Suite

Author: Uri Blass

Date: 13:28:59 12/04/01

Go up one level in this thread


On December 03, 2001 at 19:00:44, Miguel A. Ballicora wrote:

>On December 03, 2001 at 18:48:59, Dann Corbit wrote:
>
>>On December 03, 2001 at 18:44:16, Uri Blass wrote:
>>
>>>On December 03, 2001 at 15:15:18, Dann Corbit wrote:
>>>
>>>>On December 03, 2001 at 14:42:13, Peter McKenzie wrote:
>>>>[snip]
>>>>>A c0?  Sorry for my ignorance, is that part of the epd standard?
>>>>>Perhaps you could give me an example?  Thanks.
>>>>
>>>>c0 is the first comment.
>>>>c1 is the second, etc.
>>>>
>>>>[D]4k3/1Q5Q/2q2q2/1qnqqnq1/1Qqbbq1Q/3NBN2/1Q1NBN1Q/1r1RKR1r b - - bm Nxd3+; c0
>>>>"Mate in 7";
>>>
>>>Thanks for this position
>>>It probably is going to help me to find more bugs in my move generator
>>
>>I am guessing it was composed by leonid.
>>
>>>my move generator found that perft 4=32,511,624 when yace said that it is only
>>>32,511,622
>>>
>>>I guess that yace is right.
>>>I will investigate the problem later.
>>>
>>>I did not know that my move generator has bugs except not generating un passant
>>>moves in reply to check and generating illegal unpassant moves when the pawn is
>>>not pinned and it is clearly not relevant in this case.
>>
>>Beowulf says:
>>[1]W > setboard 4k3/1Q5Q/2q2q2/1qnqqnq1/1Qqbbq1Q/3NBN2/1Q1NBN1Q/1r1RKR1r b - -
>>[1]B > perft 4
>>Progress :
>>......................................................................................
>>Total: 32511622 Moves
>>14.65 Seconds
>
>Gaviota agrees:
>
>perft 4
>depth 0: leaves:          1 accum:          1
>depth 1: leaves:         86 accum:         87
>depth 2: leaves:       6189 accum:       6276
>depth 3: leaves:     448732 accum:     455008
>depth 4: leaves:   32511622 accum:   32966630
>
>Miguel

My program was wrong in counting the 2 following games:
Rxd1+ Kxd1 Rxf1+ Kxf1
Rxf1+ Kxf1 Rxd1+ Kxd1

I corrected the bug and it now fdo not count these games as legal games.

The bug was that I did not update the attack arrays correctly in my function to
remove kings from the board.

When my program tried to generate Rxd1+ Kxd1 it deleted the king from e1 as part
of making the move.

It had to update the attack array in order to know that f1 is not attacked by
white after removing the king.

It can do it correctly when f1 is not attacked by black but in the relevant case
the fact that the black rook at d1 attacks f1 after removing the king confused
my program.

This bug was a bug for king moves in all the possible directions and it is
amazing that it did not prevent my program to calculate perft 8 correctly in the
initial position(one of the reason may be that the attack information is not
important in many cases and I use it mainly in replies to check).

Uri



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.