Older Version Newer Version

GerdIsenberg GerdIsenberg Mar 4, 2010

**[[Home]] * [[Board Representation]] * [[Bitboards]] * [[Pawn Pattern and Properties]] * Attack Spans**

Set-wise pattern, based on **attackspans** are for instance [[Isolated Pawns (Bitboards)|isolated pawns]], [[Passed Pawns (Bitboards)|passers]] and [[Candidates (Bitboards)|candidates]].

The admittedly arbitrary definition of **front attackspans** includes the attacked squares itself, thus it is like a **fill** of [[Pawn Attacks (Bitboards)|attacked squares]] in the appropriate direction. The **rear attackspan** is the **complement** set on the **same file**, so that the union of both spans covers the **whole file**. As always, we keep disjoint east-west sets for separate applications, despite illustrated as union with one single pawn:
[[code]]
white attack        white attack     attack filefill with least one
frontspan           rearspan         square attacked by white
. . 1 . 1 . . .     . . . . . . . .     . . 1 . 1 . . .
. . 1 . 1 . . .     . . . . . . . .     . . 1 . 1 . . .
. . 1 . 1 . . .     . . . . . . . .     . . 1 . 1 . . .
. . 1 . 1 . . .     . . . . . . . .     . . 1 . 1 . . .
. . . w . . . .     . . 1 w 1 . . .     . . 1 w 1 . . .
. . . . . . . .     . . 1 . 1 . . .     . . 1 . 1 . . .
. . . . . . . .     . . 1 . 1 . . .     . . 1 . 1 . . .
. . . . . . . .     . . 1 . 1 . . .     . . 1 . 1 . . .

black attack        black attack     attack filefill with least one
frontspan           rearspan         square attacked by black
. . . . . . . .     . . 1 . 1 . . .     . . 1 . 1 . . .
. . . . . . . .     . . 1 . 1 . . .     . . 1 . 1 . . .
. . . . . . . .     . . 1 . 1 . . .     . . 1 . 1 . . .
. . . . . . . .     . . 1 . 1 . . .     . . 1 . 1 . . .
. . . b . . . .     . . 1 b 1 . . .     . . 1 b 1 . . .
. . 1 . 1 . . .     . . . . . . . .     . . 1 . 1 . . .
. . 1 . 1 . . .     . . . . . . . .     . . 1 . 1 . . .
. . 1 . 1 . . .     . . . . . . . .     . . 1 . 1 . . .
[[code]]
The routines based on [[General Setwise Operations#OneStepOnly|one step only]], [[Pawn Fills|vertical fills]] and [[Pawn Spans|pawn spans]] :
[[code format="cpp"]]
U64 wEastAttackFrontSpans (U64 wpawns) {return eastOne(wFrontSpans(wpawns));}
U64 wWestAttackFrontSpans (U64 wpawns) {return westOne(wFrontSpans(wpawns));}
U64 bEastAttackFrontSpans (U64 bpawns) {return eastOne(bFrontSpans(bpawns));}
U64 bWestAttackFrontSpans (U64 bpawns) {return westOne(bFrontSpans(bpawns));}

U64 wEastAttackRearSpans (U64 wpawns)  {return eastOne(wRearFill(wpawns));}
U64 wWestAttackRearSpans (U64 wpawns)  {return westOne(wRearFill(wpawns));}
U64 bEastAttackRearSpans (U64 bpawns)  {return eastOne(bRearFill(bpawns));}
U64 bWestAttackRearSpans (U64 bpawns)  {return westOne(bRearFill(bpawns));}
[[code]]
The filefills are independent on color
[[code format="cpp"]]
U64 eastAttackFileFill (U64 pawns) {return eastOne(fileFill(pawns));}
U64 westAttackFileFill (U64 pawns) {return westOne(fileFill(pawns));}
[[code]]
* If a pawn is not member of own west or east attack filefills, the pawn is [[Isolated Pawns (Bitboards)|half-isolated]].
* If a pawn is not member of the union of own east and west attack filefills, the pawn is [[Isolated Pawns (Bitboards)|isolated]].
* If a pawn is not member of the union of all opponent front pawn- and attack-spans, it is a [[Passed Pawns (Bitboards)|passed pawn]].

=What links here?=
[[include page="Attack Spans" component="backlinks" limit="20" ]]
**[[Pawn Pattern and Properties|Up one Level]]**