Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: (adding diagram)

Author: Bruce Moreland

Date: 16:06:52 04/27/00

Go up one level in this thread


On April 27, 2000 at 17:25:19, Dann Corbit wrote:

>On April 27, 2000 at 16:27:57, Bruce Moreland wrote:
>[snip]
>>I can easily dispatch based upon the type of material that is left.  At program
>>boot I set up a hierachy of functions that can return exact or heuristic values
>>for various material configurations, in many cases based upon where the pieces
>>actually are.
>
>What does this hierachy look like?  Is it an array of struct?  By what means do
>you hash to the desired collection?  When you say chain, it sounds like a linked
>list to me, indicating that its structure changes during program execution.
>
>A hierachy sounds to me like a tree structure (if you use the term with the same
>meaning as a hierachy model for database implementation).  If so, do you
>navigate the tree by material or by position or ???

Here is another one that mine understands, at least mostly:

[D] 6k1/3p2p1/6P1/8/8/3B4/6K1/8 w - - 0 1

Maybe I used the word "hierarchy" wrong.  What I meant is a series of handlers,
the first ones having priority over the latter ones.

It doesn't change during execution, it's created at boot time.  For any given
material configuration there is a list of endgame handlers, which may be empty.

The handlers are executed in order.  If the handler can't understand the ending,
it returns a value that signifies this.  If it understands, it returns a value
and that's the score.

Example:

PPBK vs BK, with opposite bishops.  The first handler checks to see if this is
the standard Kmoch impotent pair draw, with an extra pawn and and extra bishop.

If so, it assumes that the bishop can be sacrificed for the other pawn, leading
to a draw.

If conditions for this aren't met, the standard opposite bishop handler is
called, which folds the score in toward zero.

In most cases there is just one handler, this is a rare case where there are
two.

Another case where there are two is PK vs PBK.  This checks to see if we've got
the g2/g3 pawn ram draw, and if we don't it checks to see if this is an impotent
pair case with an extra pawn for the weaker side, which is also a draw.

Sometimes a handler is disqualified because it isn't legal to use it in that
part of the tree, in which case the next handler in the chain may be eligible.

bruce



This page took 0.01 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.