Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Question: For maximum efficiency, where do you use InCheck() function

Author: Sune Fischer

Date: 15:42:41 11/25/01

Go up one level in this thread


On November 25, 2001 at 18:12:17, William Bryant wrote:

>I think my program uses InCheck() to often, slowing down the search.
>
>I'm looking for comments and suggestions of different ways to utilize the
>function, and decrease the number of calls.
>
>At present, I call it at the end of each MakeMove() to see if this is an
>illegal position.
>
>Suggestions and discussion appreciated.
>
>William

One way would be to assign a large value to the king, e.g. 2*matescore then the
search will automaticly filter out these moves. You could also check if the
captured piece was a king and return immidiatly if true. You will go one ply
deeper before you discover that the king was captured, but the check will almost
be for free and since the king has a high value the move ordering should put
this capture to be searched quickly.

Considering how few king captures there are in a midgame, I think the occasional
extra ply is well spent.

-S.



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.