Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Correction again

Author: Bas Hamstra

Date: 07:39:08 12/19/02

Go up one level in this thread


On December 18, 2002 at 17:16:18, Gerd Isenberg wrote:

>On December 18, 2002 at 14:59:58, Bas Hamstra wrote:
>
>>On December 18, 2002 at 11:09:45, Gerd Isenberg wrote:
>>
>>>On December 18, 2002 at 09:50:03, Bas Hamstra wrote:
>>>
>>>>On December 17, 2002 at 20:30:49, Gerd Isenberg wrote:
>>>>
>>>>>Oups, sorry, not so easy...
>>>>>
>>>>>those were wrong again:
>>>>>
>>>>>openPawns[WHITE] = pawnBB[WHITE] & ~filldown(allPawns);
>>>>>passedPawns[WHITE] = pawnBB[WHITE] & ~filldown(allPawns|pawnAttacks[BLACK]);
>>>>>notDefendable[WHITE] = pawnBB[WHITE] & fillup(pawnAttacks[WHITE]);
>>>>>
>>>>>Both openPawns and  passedPawns statements produce an empty set due to
>>>>>"allPawns" as filldown parameter, which is member of the filldown result.
>>>>>
>>>>>I'll hope this is it finally ;-)
>>>>>
>>>>>openPawns[WHITE] = pawnBB[WHITE] & ~filldown(allPawns >> 8);
>>>>>passedPawns[WHITE] = openPawns[WHITE]
>>>>>                   & ~filldown(pawnBB[BLACK]|pawnAttacks[BLACK]);
>>>>>
>>>>>
>>>>>The notDefendable-Statement was implemented as isDefendable of course.
>>>>>
>>>>>notDefendable[WHITE] = pawnBB[WHITE] & ~fillup(pawnAttacks[WHITE]);
>>>>>
>>>>>Gerd
>>>>
>>>>Interesting and clever as always, Gerd. Although I would rather expect fillup
>>>>where I see filldown in the above examples, but maybe I ordered my bitboards
>>>>differently. I use a lot of masks stored in tables. But that's for each pawn
>>>>seperate, your idea seems better.
>>>>
>>>>
>>>>Best regards,
>>>>Bas.
>>>
>>>Hi Bas,
>>>
>>>Thanks ;-)
>>>
>>>with the help of Steffan Westcott's genious Kogge-Stone routines.
>>>
>>>The square-bitindex mapping is as follows: a1-0 h1-7 a2-8...h7-63
>>>
>>>Let's see:
>>>
>>>openPawns[WHITE] = pawnBB[WHITE] & ~filldown(allPawns >> 8);
>>>
>>>sample pawns:
>>>[D]8/1P4pp/3P1p2/4p3/1P5P/6P1/8/8 w - -
>>>
>>>after filldown(allPawns >> 8) each pawn/queen is a "one" in the bitboard:
>>>[D] 8/8/1P4pp/1Q1P1pQQ/1Q1QpQQQ/1P1QQQQP/1Q1QQQPQ/1Q1QQQQQ w
>>>
>>>if you and the complement with the white pawns, you get a remaining set with
>>>b7,d6.
>>
>>You are right of course, in my case A1 also is 0, I was locating the "blockers".
>>
>>>Currently thinking about pawn ilands and isolanis. Isolanis have the property,
>>>that there is no own pawn control (from neighboured file pawns) on the same
>>>file:
>>>
>>>isolani[side] = pawnBB[side] & ~FillUpDown(pawnAttacks[side]);
>>>noNeighbourFromLeft[side] = pawnBB[side] & ~FillUpDown(pawnAttacksAH[side]);
>>>noNeighbourFromRight[side] = pawnBB[side] & ~FillUpDown(pawnAttacksHA[side]);
>>>
>>>FillUpDown may be the FillUp|FillDown or a specialized version to gain more
>>>parallelism, specially with 64-bit mmx registers, which are rather great for
>>>Kogge-Stone and other fill algorithms.
>>>
>>>My question is, what's the smartest way to determine n-pawn ilands on
>>>consecutive files with n >= 1 (n==1 ==> isolanis)?
>>
>>I have no idea. Also I wouldn't have an idea how to make use of the result. You
>>get a random bitmap, with pawns on A6, B2 and C5. And then what?
>>
>>Best regards,
>>Bas.
>
>Hmm..., it depends where the black pawns are. One should also consider vertical
>fragmentation. My intention is to determine pawn-patterns like in Uri's winning
>positions here in this thread with three against two pawns forcing an outside
>passer, eg. widder, backward and open pawn with one guard against widder and the
>backward guard. Or determing majorities on the queen-, king-wing or center,
>minory-attacks, an "isolated" duo of open pawns (Hängende Bauern). If one
>advances, most often the other becomes backward. Also the number of islands may
>be evaluable, eg. two 3-ilands againts three 2-island... only brainstorming.
>
>Gerd

Hi Gerd,

I think one crucial thing with majorities is: can they ever create a freepawn.
It would certainly be nice if you could detect rotten majorities with that
fill-stuff. If I am not mistaken Crafty uses an exspensive loop for each
"halfopen" pawn to see if, when it advances up to the point where is attacks an
enemy pawn, a trade would result in a freepawn. Mostly Crafty could read this
stuff from pawnhash of course, but still. It would be interesting to try do this
with the fill-trick. I was going to post an attempt, but I'm afraid it's too
difficult.

Bas.





























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.