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.