/* if we find that two squares are related according to matrix SqRel, we use another matrix to look up the direction of the move required ('to walk the vector') if it is a sliding piece (R,B,Q) */ static int vector[256] = { 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,UR,0 ,0 ,0 ,0 ,0 ,0 , UP ,0 ,0 ,0 ,0 ,0 ,0 ,UL,0 ,0 ,UR,0 ,0 ,0 ,0 ,0 , UP ,0 ,0 ,0 ,0 ,0 ,UL,0 ,0 ,0 ,0 ,UR,0 ,0 ,0 ,0 , UP ,0 ,0 ,0 ,0 ,UL,0 ,0 ,0 ,0 ,0 ,0 ,UR,0 ,0 ,0 , UP ,0 ,0 ,0 ,UL,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,UR,0 ,0 , UP ,0 ,0 ,UL,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,UR,0 , UP ,0 ,UL,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,UR, UP ,UL,0 ,0 ,0 ,0 ,0 ,0 ,0 ,RI,RI,RI,RI,RI,RI,RI, 0 ,LE,LE,LE,LE,LE,LE,LE,0 ,0 ,0 ,0 ,0 ,0 ,0 ,DR, DN ,DL,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,DR,0 , DN ,0 ,DL,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,DR,0 ,0 , DN ,0 ,0 ,DL,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,DR,0 ,0 ,0 , DN ,0 ,0 ,0 ,DL,0 ,0 ,0 ,0 ,0 ,0 ,DR,0 ,0 ,0 ,0 , DN ,0 ,0 ,0 ,0 ,DL,0 ,0 ,0 ,0 ,DR,0 ,0 ,0 ,0 ,0 , DN ,0 ,0 ,0 ,0 ,0 ,DL,0 ,0 ,DR,0 ,0 ,0 ,0 ,0 ,0 , DN ,0 ,0 ,0 ,0 ,0 ,0 ,DL,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 };
a free open source engine under the GNU General Public License written in C by Martin Borriss. Supported platforms are Linux and Windows. Gullydeckel is Chess Engine Communication Protocol compliant.
Gullydeckel's board representation relies on Piece-Lists and 0x88. Its search is plain alpha-beta using a recursive null move pruning with depth reduction R of 2.
Table of Contents
0x88 Difference
The preinitialized static int vector[256] in "attacks.c" [2] with ray directions encoded, which is indexed by 0x88 square difference plus offset, somehow reminds on a Gullydeckel, the colloquial German name for Manhole cover [3]:Forum Posts
External Links
References
What links here?
Up one Level