Files
hcsalmon1-Chess-Engine-Test/Java/MoveConstants.java
2025-01-19 14:45:46 +00:00

878 lines
21 KiB
Java

public class MoveConstants {
//#region
public static final long[] KNIGHT_ATTACKS =
{
132096,
329728,
659712,
1319424,
2638848,
5277696,
10489856,
4202496,
33816580,
84410376,
168886289,
337772578,
675545156,
1351090312L,
2685403152L,
1075839008L,
8657044482L,
21609056261L,
43234889994L,
86469779988L,
172939559976L,
345879119952L,
687463207072L,
275414786112L,
2216203387392L,
5531918402816L,
11068131838464L,
22136263676928L,
44272527353856L,
88545054707712L,
175990581010432L,
70506185244672L,
567348067172352L,
1416171111120896L,
2833441750646784L,
5666883501293568L,
11333767002587136L,
22667534005174272L,
45053588738670592L,
18049583422636032L,
145241105196122112L,
362539804446949376L,
725361088165576704L,
1450722176331153408L,
2901444352662306816L,
5802888705324613632L,
Long.parseUnsignedLong("11533718717099671552"),
4620693356194824192L,
288234782788157440L,
576469569871282176L,
1224997833292120064L,
2449995666584240128L,
4899991333168480256L,
Long.parseUnsignedLong("9799982666336960512"),
1152939783987658752L,
2305878468463689728L,
1128098930098176L,
2257297371824128L,
4796069720358912L,
9592139440717824L,
19184278881435648L,
38368557762871296L,
4679521487814656L,
9077567998918656L,
};
public static final long[][] BISHOP_ATTACKS = {
{
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
2,
4,
8,
16,
32,
64,
0,
256,
513,
1026,
2052,
4104,
8208,
16416,
0,
65536,
131328,
262657,
525314,
1050628,
2101256,
4202512,
0,
16777216,
33619968,
67240192,
134480385,
268960770,
537921540,
1075843080L,
0,
4294967296L,
8606711808L,
17213489152L,
34426978560L,
68853957121L,
137707914242L,
275415828484L,
0,
1099511627776L,
2203318222848L,
4406653222912L,
8813306511360L,
17626613022976L,
35253226045953L,
70506452091906L,
0,
281474976710656L,
564049465049088L,
1128103225065472L,
2256206466908160L,
4512412933881856L,
9024825867763968L,
18049651735527937L,
},
{
0,
0,
0,
0,
0,
0,
0,
0,
2,
4,
8,
16,
32,
64,
128,
0,
516,
1032,
2064,
4128,
8256,
16512,
32768,
0,
132104,
264208,
528416,
1056832,
2113664,
4227072,
8388608,
0,
33818640,
67637280,
135274560,
270549120,
541097984,
1082130432L,
2147483648L,
0,
8657571872L,
17315143744L,
34630287488L,
69260574720L,
138521083904L,
277025390592L,
549755813888L,
0,
2216338399296L,
4432676798592L,
8865353596928L,
17730707128320L,
35461397479424L,
70918499991552L,
140737488355328L,
0,
567382630219904L,
1134765260439552L,
2269530520813568L,
4539061024849920L,
9078117754732544L,
18155135997837312L,
36028797018963968L,
0,
},
{
0,
256,
66048,
16909312,
4328785920L,
1108169199616L,
283691315109888L,
72624976668147712L,
0,
65536,
16908288,
4328783872L,
1108169195520L,
283691315101696L,
72624976668131328L,
145249953336262656L,
0,
16777216,
4328521728L,
1108168671232L,
283691314053120L,
72624976666034176L,
145249953332068352L,
290499906664136704L,
0,
4294967296L,
1108101562368L,
283691179835392L,
72624976397598720L,
145249952795197440L,
290499905590394880L,
580999811180789760L,
0,
1099511627776L,
283673999966208L,
72624942037860352L,
145249884075720704L,
290499768151441408L,
580999536302882816L,
1161999072605765632L,
0,
281474976710656L,
72620543991349248L,
145241087982698496L,
290482175965396992L,
580964351930793984L,
1161928703861587968L,
2323857407723175936L,
0,
72057594037927936L,
144115188075855872L,
288230376151711744L,
576460752303423488L,
1152921504606846976L,
2305843009213693952L,
4611686018427387904L,
0,
0,
0,
0,
0,
0,
0,
0,
},
{
Long.parseUnsignedLong("9241421688590303744"),
36099303471055872L,
141012904183808L,
550831656960L,
2151686144L,
8404992,
32768,
0,
4620710844295151616L,
Long.parseUnsignedLong("9241421688590303232"),
36099303471054848L,
141012904181760L,
550831652864L,
2151677952L,
8388608,
0,
2310355422147510272L,
4620710844295020544L,
Long.parseUnsignedLong("9241421688590041088"),
36099303470530560L,
141012903133184L,
550829555712L,
2147483648L,
0,
1155177711056977920L,
2310355422113955840L,
4620710844227911680L,
Long.parseUnsignedLong("9241421688455823360"),
36099303202095104L,
141012366262272L,
549755813888L,
0,
577588851233521664L,
1155177702467043328L,
2310355404934086656L,
4620710809868173312L,
Long.parseUnsignedLong("9241421619736346624"),
36099165763141632L,
140737488355328L,
0,
288793326105133056L,
577586652210266112L,
1155173304420532224L,
2310346608841064448L,
4620693217682128896L,
Long.parseUnsignedLong("9241386435364257792"),
36028797018963968L,
0,
144115188075855872L,
288230376151711744L,
576460752303423488L,
1152921504606846976L,
2305843009213693952L,
4611686018427387904L,
Long.parseUnsignedLong("9223372036854775808"),
0,
0,
0,
0,
0,
0,
0,
0,
0,
},
};
public static final long[][] ROOK_ATTACKS = {
{
0,
0,
0,
0,
0,
0,
0,
0,
1,
2,
4,
8,
16,
32,
64,
128,
257,
514,
1028,
2056,
4112,
8224,
16448,
32896,
65793,
131586,
263172,
526344,
1052688,
2105376,
4210752,
8421504,
16843009,
33686018,
67372036,
134744072,
269488144,
538976288,
1077952576L,
2155905152L,
4311810305L,
8623620610L,
17247241220L,
34494482440L,
68988964880L,
137977929760L,
275955859520L,
551911719040L,
1103823438081L,
2207646876162L,
4415293752324L,
8830587504648L,
17661175009296L,
35322350018592L,
70644700037184L,
141289400074368L,
282578800148737L,
565157600297474L,
1130315200594948L,
2260630401189896L,
4521260802379792L,
9042521604759584L,
18085043209519168L,
36170086419038336L
},
{
254,
252,
248,
240,
224,
192,
128,
0,
65024,
64512,
63488,
61440,
57344,
49152,
32768,
0,
16646144,
16515072,
16252928,
15728640,
14680064,
12582912,
8388608,
0,
4261412864L,
4227858432L,
4160749568L,
4026531840L,
3758096384L,
3221225472L,
2147483648L,
0,
1090921693184L,
1082331758592L,
1065151889408L,
1030792151040L,
962072674304L,
824633720832L,
549755813888L,
0,
279275953455104L,
277076930199552L,
272678883688448L,
263882790666240L,
246290604621824L,
211106232532992L,
140737488355328L,
0,
71494644084506624L,
70931694131085312L,
69805794224242688L,
67553994410557440L,
63050394783186944L,
54043195528445952L,
36028797018963968L,
0,
Long.parseUnsignedLong("18302628885633695744"),
Long.parseUnsignedLong("18158513697557839872"),
Long.parseUnsignedLong("17870283321406128128"),
Long.parseUnsignedLong("17293822569102704640"),
Long.parseUnsignedLong("16140901064495857664"),
Long.parseUnsignedLong("13835058055282163712"),
Long.parseUnsignedLong("9223372036854775808"),
0
},
{
72340172838076672L,
144680345676153344L,
289360691352306688L,
578721382704613376L,
1157442765409226752L,
2314885530818453504L,
4629771061636907008L,
Long.parseUnsignedLong("9259542123273814016"),
72340172838076416L,
144680345676152832L,
289360691352305664L,
578721382704611328L,
1157442765409222656L,
2314885530818445312L,
4629771061636890624L,
Long.parseUnsignedLong("9259542123273781248"),
72340172838010880L,
144680345676021760L,
289360691352043520L,
578721382704087040L,
1157442765408174080L,
2314885530816348160L,
4629771061632696320L,
Long.parseUnsignedLong("9259542123265392640"),
72340172821233664L,
144680345642467328L,
289360691284934656L,
578721382569869312L,
1157442765139738624L,
2314885530279477248L,
4629771060558954496L,
Long.parseUnsignedLong("9259542121117908992"),
72340168526266368L,
144680337052532736L,
289360674105065472L,
578721348210130944L,
1157442696420261888L,
2314885392840523776L,
4629770785681047552L,
Long.parseUnsignedLong("9259541571362095104"),
72339069014638592L,
144678138029277184L,
289356276058554368L,
578712552117108736L,
1157425104234217472L,
2314850208468434944L,
4629700416936869888L,
Long.parseUnsignedLong("9259400833873739776"),
72057594037927936L,
144115188075855872L,
288230376151711744L,
576460752303423488L,
1152921504606846976L,
2305843009213693952L,
4611686018427387904L,
Long.parseUnsignedLong("9223372036854775808"),
0,
0,
0,
0,
0,
0,
0,
0
},
{
0,
1,
3,
7,
15,
31,
63,
127,
0,
256,
768,
1792,
3840,
7936,
16128,
32512,
0,
65536,
196608,
458752,
983040,
2031616,
4128768,
8323072,
0,
16777216,
50331648,
117440512,
251658240,
520093696,
1056964608L,
2130706432L,
0,
4294967296L,
12884901888L,
30064771072L,
64424509440L,
133143986176L,
270582939648L,
545460846592L,
0,
1099511627776L,
3298534883328L,
7696581394432L,
16492674416640L,
34084860461056L,
69269232549888L,
139637976727552L,
0,
281474976710656L,
844424930131968L,
1970324836974592L,
4222124650659840L,
8725724278030336L,
17732923532771328L,
35747322042253312L,
0,
72057594037927936L,
216172782113783808L,
504403158265495552L,
1080863910568919040L,
2233785415175766016L,
4539628424389459968L,
9151314442816847872L
}
};
public static final long[] WHITE_PAWN_ATTACKS = {
0,
0,
0,
0,
0,
0,
0,
0,
2,
5,
10,
20,
40,
80,
160,
64,
512,
1280,
2560,
5120,
10240,
20480,
40960,
16384,
131072,
327680,
655360,
1310720,
2621440,
5242880,
10485760,
4194304,
33554432,
83886080,
167772160L,
335544320L,
671088640L,
1342177280L,
2684354560L,
1073741824L,
8589934592L,
21474836480L,
42949672960L,
85899345920L,
171798691840L,
343597383680L,
687194767360L,
274877906944L,
2199023255552L,
5497558138880L,
10995116277760L,
21990232555520L,
43980465111040L,
87960930222080L,
175921860444160L,
70368744177664L,
562949953421312L,
1407374883553280L,
2814749767106560L,
5629499534213120L,
11258999068426240L,
22517998136852480L,
45035996273704960L,
18014398509481984L
};
public static final long[] BLACK_PAWN_ATTACKS = {
512,
1280,
2560,
5120,
10240,
20480,
40960,
16384,
131072,
327680,
655360,
1310720,
2621440,
5242880,
10485760,
4194304,
33554432,
83886080,
167772160,
335544320,
671088640,
1342177280,
2684354560L,
1073741824,
8589934592L,
21474836480L,
42949672960L,
85899345920L,
171798691840L,
343597383680L,
687194767360L,
274877906944L,
2199023255552L,
5497558138880L,
10995116277760L,
21990232555520L,
43980465111040L,
87960930222080L,
175921860444160L,
70368744177664L,
562949953421312L,
1407374883553280L,
2814749767106560L,
5629499534213120L,
11258999068426240L,
22517998136852480L,
45035996273704960L,
18014398509481984L,
144115188075855872L,
360287970189639680L,
720575940379279360L,
1441151880758558720L,
2882303761517117440L,
5764607523034234880L,
Long.parseUnsignedLong("11529215046068469760"),
4611686018427387904L,
0,
0,
0,
0,
0,
0,
0,
0
};
public static final long[] KING_ATTACKS = {
770,
1797,
3594,
7188,
14376,
28752,
57504,
49216,
197123,
460039,
920078,
1840156,
3680312,
7360624,
14721248,
12599488,
50463488,
117769984,
235539968,
471079936,
942159872,
1884319744L,
3768639488L,
3225468928L,
12918652928L,
30149115904L,
60298231808L,
120596463616L,
241192927232L,
482385854464L,
964771708928L,
825720045568L,
3307175149568L,
7718173671424L,
15436347342848L,
30872694685696L,
61745389371392L,
123490778742784L,
246981557485568L,
211384331665408L,
846636838289408L,
1975852459884544L,
3951704919769088L,
7903409839538176L,
15806819679076352L,
31613639358152704L,
63227278716305408L,
54114388906344448L,
216739030602088448L,
505818229730443264L,
1011636459460886528L,
2023272918921773056L,
4046545837843546112L,
8093091675687092224L,
Long.parseUnsignedLong("16186183351374184448"),
Long.parseUnsignedLong("13853283560024178688"),
144959613005987840L,
362258295026614272L,
724516590053228544L,
1449033180106457088L,
2898066360212914176L,
5796132720425828352L,
Long.parseUnsignedLong("11592265440851656704"),
Long.parseUnsignedLong("4665729213955833856")
};
public static final long[] SQUARE_BBS = {
1,
2,
4,
8,
16,
32,
64,
128,
256,
512,
1024,
2048,
4096,
8192,
16384,
32768,
65536,
131072,
262144,
524288,
1048576,
2097152,
4194304,
8388608,
16777216,
33554432,
67108864,
134217728,
268435456,
536870912,
1073741824L,
2147483648L,
4294967296L,
8589934592L,
17179869184L,
34359738368L,
68719476736L,
137438953472L,
274877906944L,
549755813888L,
1099511627776L,
2199023255552L,
4398046511104L,
8796093022208L,
17592186044416L,
35184372088832L,
70368744177664L,
140737488355328L,
281474976710656L,
562949953421312L,
1125899906842624L,
2251799813685248L,
4503599627370496L,
9007199254740992L,
18014398509481984L,
36028797018963968L,
72057594037927936L,
144115188075855872L,
288230376151711744L,
576460752303423488L,
1152921504606846976L,
2305843009213693952L,
4611686018427387904L,
Long.parseUnsignedLong("9223372036854775808"),
};
//#endregion
}