Files
hcsalmon1-Chess-Engine-Test/Java/MoveConstants.java
2025-01-12 22:42:08 +00:00

879 lines
38 KiB
Java

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