Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: No explosions

Author: Matthias Gemuh

Date: 01:41:38 01/12/02

Go up one level in this thread



Hi Uri,
let's sign a peace treaty. No need to treat each other roughly.
I was expecting David to pick out the following infos (knowing that 400 pts = 1
ply):

    // extensions
--> nLocalExt = 0; MultiVariant->nExt[nPly] = 0;
--> if (ChsStrct->extCheck[nPly]) { nCounters.nExtCheck++; nLocalExt += 400; }
I extend checks by 400/400 ply.

--> if ((nPly >= 2)&&(ChsStrct->extCheck[nPly-2])&&(ChsStrct->extCheck[nPly]))
-->         { nCounters.nDoubleCheck++; nLocalExt += 200; }
I extend successive checks by 200/400 ply, hint is "[nPly-2]" and "[nPly]".

--> if ((nPly)&&(ChsStrct->extCapture[nPly-1])) {
-->     if (ChsStrct->extCapture[nPly] == 2) { nCounters.nExtRecap++; nLocalExt
+= 260; }
--> }
I extend good recaptures by 260/400 ply, hints are "[nPly-]" and "[nPly]" and
"nExtRecap".

--> if (mate_threat) nLocalExt += 400;
I extend mate threats by 400/400 ply. Anyone who does null moves should know
this.

--> if (ChsStrct->extPromo[nPly]) { nCounters.nExtPromo++; nLocalExt += 400; }
I extend promotions by 400/400 ply.

--> if (ChsStrct->goodMoves[nPly] == 1) nLocalExt += 120;
--> else if (ChsStrct->goodMoves[nPly] == 2) nLocalExt += 80;
--> else if (ChsStrct->goodMoves[nPly] == 3) nLocalExt += 40;
--> nLocalExt += 5*ChsStrct->extPawnPush[nPly];
--> if ((nPly)&&(ChsStrct->extCapture[nPly-1])) {
-->     if (ChsStrct->extCapture[nPly] == 1) { nCounters.nExtRecap++; nLocalExt
+= 160; }
--> }
--> if ((nPly >= 2) &&
((MultiVariant->megaMove[nPly-1]-MultiVariant->megaMove[nPly-2]) > PAWNVALUE) &&
-->     ((MultiVariant->megaMove[nPly-1]-MultiVariant->megaMove[nPly-2]) <
2*PAWNVALUE))
-->             { nCounters.nExtMegaMove3++; nLocalExt += 60; }
--> if (nPly >= 2) {
-->     if ((MultiVariant->megaMove[nPly-1]-MultiVariant->megaMove[nPly-2]) >
3*PAWNVALUE)
-->             { nCounters.nExtMegaMove1++; nLocalExt += 180; }
-->     else if ((MultiVariant->megaMove[nPly-1]-MultiVariant->megaMove[nPly-2])
> 2*PAWNVALUE)
-->             { nCounters.nExtMegaMove2++; nLocalExt += 120; }
--> }
The message here is simply that I have some other minor extensions, yet my tree
does not
explode to ply 62, so David must have a bug.

--> nLocalExt /= 400; nLocalExt = min(1, nLocalExt);
I limit extensions at each node to 1 ply.

--> if (ChsStrct->extOneMove[nPly]) nLocalExt++; MultiVariant->nExt[nPly] =
nLocalExt;
I extend by an additional 1 ply, if only one legal move.

I hope that explains the code a bit.

Regards,
Matthias.



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.