Author: Bas Hamstra
Date: 06:50:03 12/18/02
Go up one level in this thread
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.
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.