Computer Chess Club Archives


Search

Terms

Messages

Subject: unstoppable passers with one and

Author: Gerd Isenberg

Date: 22:59:00 04/14/03

Go up one level in this thread


On April 14, 2003 at 23:37:39, Robert Hyatt wrote:

>On April 14, 2003 at 18:09:37, Gerd Isenberg wrote:
>
>>On April 14, 2003 at 17:40:03, Robert Hyatt wrote:
>>
>>>On April 14, 2003 at 15:48:48, Gerd Isenberg wrote:
>>>
>>>>Hi all,
>>>>
>>>>a minor pawn pattern idea, i like to share ...
>>>>
>>>>With (pawn) bitboards it's pretty easy to get all passers and even to get all
>>>>outside passers. The second was new to me, and i had the idea recently (thinking
>>>>bitboards ;-), but i guess the "trick" is already common or well known.
>>>>
>>>>Instead of pattern branching after a distance compare in an inner loop over
>>>>passers of one color, i use a separate bitscan and reset loop over this
>>>>dedicated set of outside passers now, eg. in pawn endings.
>>>>
>>>>For outside passers one need a precalculated array of 2*64*2 bitboards.
>>>>This array is indexed by color of passed pawns we are looking for, square of
>>>>opposite king and color of side to move. It contains set bits for all squares
>>>>with distance to promotion < king distance to promote squares, considering the
>>>>tempo.
>>>>
>>>>Next step may be to avoid such loops at all, to process some single properties
>>>>without further piece interactions. Most often one uses some piece-square
>>>>tables, indexed by the squares of the traversed bitboard. If only the
>>>>rank-position is significant, a simultanious (mmx) popcount of six consecutive
>>>>bytes may be interesting, where the bytewise population counts are multipied
>>>>afterwards with some weighting factors.
>>>
>>>I do what you are close to hitting on.  I have a bitmask of 8 bits, indicating
>>>whether white has a passer on a file (one bitmap) or whether black has a passer
>>>on a file (the other bitmap).  I can now use a simple table lookup
>>>is_outside[256][256]
>>>that works just fine.  The first subscript is the white outside passers (files
>>>with passers)
>>>and the second is a bitmap of _all_ files that have black pawns (or the inverse
>>>for looking
>>>at black outside passers).
>>>
>>>A single probe says "white has an outside passer or not" and another probe says
>>>"black has
>>>an outside passer or not."  The value returned is 0, 1 or 2, which indicate how
>>>many outside
>>>passers that side has.  And when I say outside passers I mean on each wing.  0 =
>>>no outside
>>>passers, 1 = outside passer on one wing.  2 = two outside passers on opposite
>>>wings, which
>>>is almost impossible to defend against.
>>>
>>
>>Nice idea.
>>
>>Not sure whether my definition of _outside_ passer is correct. I mean pawns, the
>>enemy king can't catch anymore. Where the opposite king is outside the pawns
>>square. How do call them?
>
>That's not "outside".  That is "unstoppable" and the idea is commonly
>called "the square of the king".  It is a simple idea about whether the
>king can reach the promoting square quick enough to win the pawn.
>
>An "outside passer" is a passed pawn that is closest to one side of the board,
>where the other side of the board has pawns by both sides that may or may not
>be passed.  The idea is that the king must stop the outside passer and after it
>does, it is too far away from the other side and the pawns there go lost...

Thanks, Bob.

So i mentioned about "unstoppable" passers and not "outside":

unstoppablePassers[WHITE] = passedPawns[WHITE]
                          & sUnstoppableSquares[WHITE][bKing][color2move];

Anyway, your outside passer approach is great and delegates a lot of computation
to a precalculated table lookup. I do it in a way by computing  max
file-distance by looking up an 256-element table with the file bitmask of
passers. (zero, if only one passer exists).






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.