Kurt

a Chess Engine Communication Protocol and UCI compliant open source chess engine under the GNU General Public License, written by Oliver Uwira in C. Able to play Chess960, Kurt participated at the 2nd Livingston Chess960 Computer World Championship 2006 in [|Mainz]. The last recent Kurt 0.9.2.2 beta is available from Jim Ablett's site. It seems, the beta version still has some issues to run steadily.
 * Home * Engines * Kurt**
 * [[image:Bundesarchiv_Bild_146-2005-0119,_Kurt_Weill.jpg width="160" link="http://en.wikipedia.org/wiki/File:Bundesarchiv_Bild_146-2005-0119,_Kurt_Weill.jpg"]] ||~ || **Kurt**,

toc =Bitboards=
 * Kurt Weill ||~ ||^ ||
 * Kurt Weill ||~ ||^ ||

Sliding Piece Attacks
Kurt 0.9.2.x beta is a none rotated bitboard engine, and uses a three-dimensional pre-initialized array of 128 KByte to lookup sliding piece attacks, indexed by square (0..63), line occupancy index (0..63, considering the outer squares) and finally the four line directions (0..3) for ranks, files, diagonals and anti-diagonals. The six-bit line occupancy index is calculated from the masked line of empty squares, multiplied by a 64-bit De Bruijn sequence for each square and direction, shifting the product right by 58. 

BitScan
Kurt 0.9.2.x beta uses Matt Taylor's folded BitScan. Returning a byte. code format="cpp" static const int LsbDeBruijnMap[64] = {  63, 30,  3, 32, 59, 14, 11, 33,   60, 24, 50,  9, 55, 19, 21, 34,   61, 29,  2, 53, 51, 23, 41, 18,   56, 28,  1, 43, 46, 27,  0, 35,   62, 31, 58,  4,  5, 49, 54,  6,   15, 52, 12, 40,  7, 42, 45, 16,   25, 57, 48, 13, 10, 39,  8, 44,   20, 47, 38, 22, 17, 37, 36, 26 };

unsigned char LeastSignificantBit(bitboard b) { unsigned int fold; b ^= (b - 1); fold = ((int) b) ^ ((int)(b>>32)); return LsbDeBruijnMap[(fold * 0x78291acf) >> 26]; } code

Collapsing Files and Ranks
Collapsed files and collapsed ranks, as posted by Urban Koistinen in 1997, and Steffan Westcott in 2006 are used in 0.9.2.x for initialization purposes: code format="cpp" /** * CollapseFiles(bitboard) folds a bitboard vertically into an 8 bit word. * By or-ing the files of a bitboard, a 8-bit folded bitboard is calculated. * E.g. by folding a bitboard containing the position of all pawns open files * can be determined: * *   abcdefgh * * 8 00000000    * 7  10100110    * 6  00010001                         abcdefgh * 5 00000000   => CollapseFiles => 11110111 * 4 00010000    * 3  00100000   Negating the result yields the open-property of * 2  11000011   the 8 files => the e-file is open. * 1 00000000    * *     Pawns */ unsigned char CollapseFiles(bitboard src) {  src |= src >> 32; src |= src >> 16; src |= src >> 8; return (unsigned char)(src & 0xff); }

/** * CollapseRanks folds a bitboard horizontally into an 8 bit word. * This is similar to CollapseFiles(bitboard). */ unsigned char CollapseRanks(bitboard src) {  src |= src >> 4;   // No masking needed src |= src >> 2;  //    "         " src |= src >> 1;  //    "         " return (unsigned char)(((src & 0x0101010101010101) * 0x0102040810204080) >> 56); } code

=Search= Kurt's search is PVS with null move pruning and killer heuristic with two slots for mate killers and other killer moves each, kept in its parent's node structure. Further, SEE is used in move ordering and quiescence search pruning.

=See also=
 * Given Name

=Forum Posts=
 * [|One step forward again] by Oliver Uwira, CCC, September 22, 2010
 * [|New Version: Kurt 0.9.2 beta] by Oliver Uwira, CCC, October 11, 2010
 * [|New Version: Kurt 0.9.2 beta] by Oliver Uwira, Winboard Forum, October 11, 2010

=External Links= > media type="custom" key="25113994" > media type="custom" key="24291082"
 * [|Kurt (disambiguation) from Wikipedia]
 * [|Kurt & Rolf Chess] Homepage of Kurt Utzinger
 * [|Kurt Richter from Wikipedia]
 * [|Kurt Tucholsky from Wikipedia]
 * [|Kurt Wallander from Wikipedia]
 * [|Kurt Weill from Wikipedia]
 * [|Louis Armstrong] - [|Mack the Knife], [|Hollywood Palace], May 01, 1965, [|YouTube] Video
 * [|Miloš Kopecký] - [|Mackie Messer], [|YouTube] Video

=References= =What links here?= include page="Kurt" component="backlinks" limit="40"
 * Up one Level**