Author: Jeff GAZET
Date: 09:20:47 09/14/04
Go up one level in this thread
>>Good morning,
>>
>>in the main search, before the moves loop, i have the basic "In Check" extension
>>(which add one ply).
>>If there is only one legal move and the king is in check, this is interesting to
>>extend one more ply. But i read that this is a bad idea to extend more than one
>>ply, so i limit to one ply max.
>>Then, "Single-response extension" is useless in this case :
>>
>>search(depth,alpha,beta)
>> {
>> int extend=0;
>> ...
>> if(InCheck=incheck(side)) extend+=ONEPLY;
>> if(InCheck && side_has_only_one_legal_move) extend+=ONEPLY;
>>
>> // limit extensions
>> if(extend>ONEPLY) extend=ONEPLY;
>>
>> for(each move) {...}
>> ...
>> }
>>
>>How is it possible to use both "Incheck" and "Single-response" extensions ?
>>
>>Thanks.
>Two choices. Use the deep blue approach that says no more than two extensions
>every two plies. I tried that but did not like it.
>
>In crafty, I extend on the ply where I check the opponent, and then the
>one-legal-reply extension is done on the next ply where I notice I have only one
>legal move, ie one extension per ply...
Thank you all.
I prefer your "Crafty" choice but i don't understand at all, i must miss
something, maybe in translation :-) Here is what i understood, is that right ?
search(depth,alpha,beta)
{
int extend=0;
...
if(InCheck=incheck(side)) extend+=ONEPLY;
// limit extensions
if(extend>ONEPLY) extend=ONEPLY;
for(each move)
{
domove();
if(this_is_the_only_one) extend+=ONEPLY;
...
}
...
}
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.