How to determine the square mapping based on bitboards?
Posted: 27 Mar 2023, 13:31
Hello chess fanatics!
I downloaded a c++ code that calculates magic bitboards for bishop and rook.
The output is as follows:
So far so good but I don't know which square mapping has been used. Little Endian File-Rank (LEFR) mapping, LERF or something else? Is it possible to tell from this data set?
Thanks in advance!
I downloaded a c++ code that calculates magic bitboards for bishop and rook.
The output is as follows:
- Code: Select all
Const U64 RMagic[64]= {
0x0C80001828100040,0x0026004408400010,0x1060040000202048,0x0110141100800888,0x084420501A000802,0x1803002905002224,0x0104380106000182,0x0000208201001041,
0x4080118100002020,0x1C40120100004020,0x1009040000802020,0x0884002800841010,0x2220068801201011,0x1911442000004022,0x0004020802010011,0x0220004400102001,
0x4009608000842280,0x4060104318400210,0x0811002400040020,0x4801520000C41010,0x0004280020022204,0x0413000408404041,0x000C028800000101,0x100400E904000201,
0x03800242000100A5,0x00C0008008210321,0x2003002400001261,0x410028894A041001,0x0800041040002901,0x001002080204080E,0x0022218040040401,0x0024084103280482,
0x0020002020801040,0x1020200020400812,0x04082000000C0061,0x4042024001200804,0x5040040000024188,0x0100040008101A13,0x0408108018080802,0x0080408064000041,
0x0850400821800120,0x008100240008480B,0x6008080001100241,0x1EB0100200110248,0x0030202216010004,0x00802021000C6142,0x032200444020410A,0x00A0202004580041,
0x0080410000406180,0x08220200002040A3,0x093000200A002804,0x40080080010010B2,0x40080101012A1304,0x0004041000001012,0x010001000E840482,0x0C04020200004885,
0x1080006110001041,0x2081211102084250,0x1020001500014619,0x3810440A10000C23,0x0410484200860422,0x180B0201090B2004,0x1100040124410282,0x001820A101000443};
Const U64 BMagic[64]= {
0x1841160051A00401,0x0202000012224A02,0x0284003005412542,0x002800A220C40502,0x0068005050040308,0x440802C810020230,0x0240034002014417,0x045202411310208A,
0x1A08410602016172,0x0830464044100E08,0x411A31A010040808,0x0200124000484405,0x060020C80000120A,0x06A001002583420A,0x10082020084C0051,0x1325202008030692,
0x2002026A00045020,0x41051C000052122C,0x010200B000100803,0x0720204000610032,0x6818603041604002,0x1041040010020001,0x0301081420025204,0x0042024420826001,
0x0404304000131801,0x1041090C00842100,0x0144110020080240,0x1211004002202008,0x0105080000500401,0x2080600C62080131,0x0844100114022082,0x0841080020804B00,
0x0008240800080210,0x4002144012084210,0x0002052000060904,0x0088400420500C14,0x0000434000204404,0x1840240800212081,0x004208C019244184,0x000054DA10030841,
0x1200090011080A02,0x0800140C000414C8,0x4400382000401058,0x0100020140000105,0x0610040040044421,0x020001202848110A,0x0222011010300101,0x0106608008012304,
0x0220429002014A02,0x110800A005104208,0x0806201048200111,0x2082008A03000802,0x2041008034011420,0x0401006005004434,0x090A429004080204,0x2041040950041802,
0x1002200028441145,0x109004012802018A,0x0065100405500801,0x0284240458180A00,0x2002441020024020,0x4A10110101144112,0x01010A2C00005030,0x040C012121020424};
So far so good but I don't know which square mapping has been used. Little Endian File-Rank (LEFR) mapping, LERF or something else? Is it possible to tell from this data set?
Thanks in advance!