Difference between revisions of "Duo Trio Quart (Bitboards)"

From Chessprogramming wiki
Jump to: navigation, search
Line 91: Line 91:
 
* [https://en.wikipedia.org/wiki/Trio Trio from Wikipedia]
 
* [https://en.wikipedia.org/wiki/Trio Trio from Wikipedia]
 
* [http://kingaglyk.pl Kinga Głyk Trio] - Walking Baby, [http://www.visioninmusica.com/ VisionInMusica], [https://en.wikipedia.org/wiki/Terni Terni], March 10, 2017, [https://en.wikipedia.org/wiki/YouTube YouTube] Video
 
* [http://kingaglyk.pl Kinga Głyk Trio] - Walking Baby, [http://www.visioninmusica.com/ VisionInMusica], [https://en.wikipedia.org/wiki/Terni Terni], March 10, 2017, [https://en.wikipedia.org/wiki/YouTube YouTube] Video
: [[Videos#KingaGlyk|Kinga Głyk]], [http://glyk.pl/ Irek Głyk], [http://www.visioninmusica.com/kinga-glyk-happy-birthday/ Rafal Stepien]
+
: [[:Category:Kinga Głyk|Kinga Głyk]], [http://glyk.pl/ Irek Głyk], [http://www.visioninmusica.com/kinga-glyk-happy-birthday/ Rafal Stepien]
 
: {{#evu:https://www.youtube.com/watch?v=Xmq52kc_HM0|alignment=left|valignment=top}}
 
: {{#evu:https://www.youtube.com/watch?v=Xmq52kc_HM0|alignment=left|valignment=top}}
 
* [https://en.wikipedia.org/wiki/Quart_%28disambiguation%29 Quart (disambiguation) from Wikipedia]
 
* [https://en.wikipedia.org/wiki/Quart_%28disambiguation%29 Quart (disambiguation) from Wikipedia]
Line 103: Line 103:
 
[[Category:Samuel Bak]]
 
[[Category:Samuel Bak]]
 
[[Category:Hans Kmoch]]
 
[[Category:Hans Kmoch]]
 +
[[Category:Kinga Głyk]]
 
[[Category:Panta Rhei]]
 
[[Category:Panta Rhei]]

Revision as of 22:03, 18 October 2018

Home * Board Representation * Bitboards * Pawn Pattern and Properties * Duo Trio Quart

Samuel Bak - White and Blue [1]

Pawn-Duo, (Phalanx) [2]
two adjacent pawns of the same color on the same rank that mutually cover the other's stop square. A Trio are three horizontal friendly pawns, a Quart four horizontal friendly pawns.

Working in the bitboard centric world to determine pawn related pattern set-wise.

The code snippets rely on shifting bitboards, specially by one step only.

Neighbors

To get pawns with east or west neighbors is simple:

U64 pawnsWithEastNeighbors(U64 pawns) {
   return pawns & westOne (pawns);
}

U64 pawnsWithWestNeighbors(U64 pawns) {
   return pawnsWithEastNeighbors(pawns) << 1; // * 2
}

or

U64 pawnsWithWestNeighbors(U64 pawns) {
   return pawns & eastOne (pawns);
}

U64 pawnsWithEastNeighbors(U64 pawns) {
   return pawnsWithWestNeighbors(pawns) >> 1;
}
    
    
    
    
    
    
    
    
        
        
        
        
     
        
      
        
        
        
        
        
♙♙♙     
        
     ♙♙ 
        
pawns               pawns with east     pawns with west     pawns with east
                    neighbors           neighbors           and west neighbors
. . . . . . . .     . . . . . . . .     . . . . . . . .     . . . . . . . .
. . . . . . . .     . . . . . . . .     . . . . . . . .     . . . . . . . .
. . . . . . . .     . . . . . . . .     . . . . . . . .     . . . . . . . .
. . . . . . . .     . . . . . . . .     . . . . . . . .     . . . . . . . .
1 1 1 . . . . .     1 1 . . . . . .     . 1 1 . . . . .     . 1 . . . . . .
. . . . . . . .     . . . . . . . .     . . . . . . . .     . . . . . . . .
. . . . . 1 1 .     . . . . . 1 . .     . . . . . . 1 .     . . . . . . . .
. . . . . . . .     . . . . . . . .     . . . . . . . .     . . . . . . . .

Neighbor Algebra

Pawns with east or west neighbors are at least member of a duo. Pawns with east and west neighbors at least member of a trio. If two neighbors have both east and west neighbors, it is at least a quart.

An exclusive pawn duo is therefor a pawn with one neighbor, while this neighbor has no other neighbor as well.

U64 duo (U64 pawns) {
   U64 withWestNeighbors = pawnsWithWestNeighbors(pawns);
   U64 withEastNeighbors = withWestNeighbors >> 1;

   U64 withOneExclusiveNeighbor  = withWestNeighbors ^ withEastNeighbors;
   U64 withExclusiveWestNeighbor = withWestNeighbors & withOneExclusiveNeighbor;
   U64 withExclusiveEastNeighbor = withEastNeighbors & withOneExclusiveNeighbor;

   U64 duoWestOne = withEclusiveEastNeighbor & (withEclusiveWestNeighbor >> 1);
   U64 duoEastOne = duoWestOne << 1;
   return duoWestOne | duoEastOne;
}
pawns               pawns with excl.    pawns with excl.    duo
                    east neighbor       west neighbor
. . . . . . . .     . . . . . . . .     . . . . . . . .     . . . . . . . .
. . . . . . . .     . . . . . . . .     . . . . . . . .     . . . . . . . .
. . . . . . . .     . . . . . . . .     . . . . . . . .     . . . . . . . .
. . . . . . . .     . . . . . . . .     . . . . . . . .     . . . . . . . .
1 1 1 . . . . .     1 . . . . . . .     . . 1 . . . . .     . . . . . . . .
. . . . . . . .     . . . . . . . .     . . . . . . . .     . . . . . . . .
. . . . . 1 1 .     . . . . . 1 . .     . . . . . . 1 .     . . . . . 1 1 .
. . . . . . . .     . . . . . . . .     . . . . . . . .     . . . . . . . .

See also

Forum Posts

External Links

Kinga Głyk, Irek Głyk, Rafal Stepien

References

Up one Level