Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: chain of responsibility

Author: Bruce Moreland

Date: 01:11:15 05/01/00

Go up one level in this thread


On April 30, 2000 at 16:21:50, Dan Newman wrote:

>On April 30, 2000 at 14:15:23, Dave Gomboc wrote:
>
>>On April 29, 2000 at 16:42:06, Robert Hyatt wrote:
>>
>>>I think most do that already.  IE I first probe the hash table, then I probe
>>>the EGTB, then I call eval which first checks for clear draws.  If it finds
>>>one it returns.  If it finds no pawns it does a special mate evaluation.  If
>>>it finds pawns, it does a normal lazy evaluation.
>>
>>Sure, I also think most programs do stuff like that.  What I'm trying to bring
>>attention to is (my supposed) explicit structural feature of Bruce's code re:
>>his use of handlers.  I suspect that most programs simply have this kind of
>>logic hardwired in procedural fashion instead, e.g. if (blah) call sub else if
>>(blah)..., which would be significantly less malleable over some fixed period of
>>time.
>>
>>Dave
>
>Interesting.  I've thought about doing stuff like this, but haven't done it
>much because of all that extra function call overhead.  I have played around
>with this sort of thing in other parts of the code to avoid doing if-tests
>though.  With a scheme like this you could reconfigure the search code as you
>search (or at least at the root)...
>
>-Dan.

When there is this little material involved, the function call overhead is not a
big deal.  The big problem is incrementally keeping track of enough information
that you can figure out which function to call, if any.  In most cases, if there
is a handler there will only be one handler.  The handlers end up being very
small, too.

bruce




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.