Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Possible nullmove and recapture extension bug.

Author: milix

Date: 05:13:57 11/22/04

Go up one level in this thread


On November 21, 2004 at 12:07:17, Mikael Bäckman wrote:

>Hi!
>
>Today I found a silly bug in my engine, a bug which might exists in other
>engines as well.
>
>The recapture extension is (too) simple to implement: Test if the current move
>and the previous move have the same to-square and are captures of equal value,
>if so, we have a recapture.
>
>So I had code looking like this:
>
>if ((To(curVar[ply-1]) == To(pMove->flags)) &&
>    (values[Capture(curVar[ply-1])] == values[Capture(pMove->flags)])) {
>  ext += FULLPLY;
>}
>
>I didn't check if the move actually was a capture since I assumed that two
>subsequent moves to the same square must be a capture.
>
>The problem with this is that when I nullmove, I store a 0 into my current
>variation array (curVar[]) and the nullmove of course isn't a capture, so the
>above 'if' fails.
>In my engine, 0 is also the index for the A1-square, so I ended up extending
>every move to A1 after a nullmove.
>
>a3 d5 Ra2 null Ra1<extend> e5 Ra2 Nf6 Ra1<extend> and so on. :)
>
>
>/Mikael

Thanks Mikael.
I had this bug!



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.