Author: Ed Schröder
Date: 10:13:41 12/28/02
Go up one level in this thread
On December 28, 2002 at 12:21:34, Alessandro Damiani wrote:
>
>>>It seems to me that there are two typos in the following code:
>>>
>>>{
>>> if (remaining_depth > 2
>>> && king_not_in_check
>>> && move_is_no_capture
>>> && move_is_not_giving_a_check) then
>>> { if (ALPHA < SCORE + MARGIN) reduce depth with 1 }
>>>}
>>>
>>>1) king_not_in_check <=> move_is_not_giving_a_check
>>
>>I interpret "king_not_in_check && move_is_no_capture &&
>>move_is_not_giving_a_check" as My king is not in check and I can't capture any
>>of his material and I can't check his king, so it looks fine to me.
>>
>
>As you say you interpret, as I did. So, something is not clear.
>
>
>>>2) instead of
>>>
>>> ALPHA < SCORE + MARGIN
>>
>>You have a SCORE below ALPHA and you want to know if it is far enough below
>>ALPHA to warrant a reduction, so you add MARGIN to it to see if it is still
>>below ALPHA. If it is, you reduce. This looks fine to me too.
>>
>We both understand the idea, but formally the condition is wrong, as I showed.
Yes, you were right, please keep on bugging me.
I have changed the page, it looks now:
if (remaining_depth > 2
&& own_king_was_not_in_check_before_make_move
&& move_is_no_capture
&& move_does_not_check_the_opponent_king) then // such as Bf1-b5+
{ if (ALPHA > SCORE + MARGIN) reduce depth with 1 }
SCORE = The score of the position (material value +
piece-square value's)
MARGIN = TABLE [remaining_depth];
static int TABLE 0, 0, 0, 500, 500, 700, 700, 900,
900,1500,1500,1500,1500,1500,1500,1500,
1500,1500 ................................ };
======
Ed
>But Ed knows best.
>
>Alessandro
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.