-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathstuff.h
More file actions
192 lines (160 loc) · 22.2 KB
/
stuff.h
File metadata and controls
192 lines (160 loc) · 22.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
/*
* File: stuff.h
* Author: Flip4it chess
*
* Created on March 10, 2010, 10:08 PM
*/
#ifndef _STUFF_H
#define _STUFF_H
//adaincimea de constructie a arborelui
#define ARB_DEPTH 4
#define MAX_DEPTH 6
//durata maxima de calcul pe mutare
#define MAX_CALC_TIME 3
#define ROCADA_MICA -1
#define ROCADA_MARE -2
#define CHECKMATE -1
#define DRAW -2
#define QUESENCE_LEVEL 2
#define MAX 3270000
#define MIN -3270000
#define UNDEFINED 0x7FFFFFFF //scorul din evaluare este nedefinit
//numere de marimi diferite
typedef unsigned long long U64;
typedef unsigned long U32;
typedef unsigned short U16;
typedef unsigned char U8;
//tabla de sah
typedef U64 BITBOARD;
//culorile jucatorilor
typedef unsigned char COLOR;
enum {BLACK, WHITE};
//tipul de piese
typedef unsigned char PIECE;
enum { PAWN=0, KNIGHT, BISHOP, QUEEN, ROOK, KING, NO_PIECE };
//un sir de caractere ce reprezinta mutarea ce se executa, in format SAN
typedef char* MOVE;
/*Flaguri folosite pentru a memora diferite stari ale tablei;
* Pentru a seta un anumit Flag se realizeaza 'flag | F_YYY'
* Pentru a deselecta un anumit flag se realizeaza 'flag & ~F_YYY'
* unde F_YYY reprezinta una dintre constantele de mai jos
*/
typedef U8 FLAGS;
FLAGS const F_INITIAL=48; //configuratia initiala a FLAGS pt o tabla noua
//FLAGS const F_CHECKW=1; //rege ALB in sah
//FLAGS const F_CHECKB=2; //rege negru in sah
//FLAGS const F_CHECKMATE=4; //sah mat
FLAGS const F_CASTLR_R_W=1; //daca s-a mutat tura dreapta pentru alb
FLAGS const F_CASTLR_L_W=2; //daca s-a mutat tura stanga pentru alb
FLAGS const F_CASTLR_R_B=4; //daca s-a mutat tura dreapta pentru negru
FLAGS const F_CASTLR_L_B=8; //daca s-a mutat tura stanga pentru negru
FLAGS const F_CASTLINGW=16; //daca mai e posibila rocada pt jucatorul alb
FLAGS const F_CASTLINGB=32; //daca mai e posibila rocada pt jucatorul negru
FLAGS const F_CATLDONEW=64; //daca a fost facuta rocada alba
FLAGS const F_CATLDONEB=128; //daca a fost facuta rocada neagra
/*Vectori de BITBOARDs preprocesate, pentru mutarile clasice ale cailor, turelor si nebunilor. Pe
* pozitia poz in vector, se gaseste BITBOARD-ul ce contine 1 pe pozitiile in care poate muta
* piesa respectiva, pornind din pozitia poz;*/
BITBOARD const KNIGHT_MOVES[64]=
{0x000000000000020400ULL, 0x000000000000050800ULL, 0x0000000000000A1100ULL, 0x000000000000142200ULL, 0x000000000000284400ULL, 0x000000000000508800ULL, 0x000000000000A01000ULL, 0x000000000000402000ULL,
0x000000000002040004ULL, 0x000000000005080008ULL, 0x00000000000A110011ULL, 0x000000000014220022ULL, 0x000000000028440044ULL, 0x000000000050880088ULL, 0x0000000000A0100010ULL, 0x000000000040200020ULL,
0x000000000204000402ULL, 0x000000000508000805ULL, 0x000000000A1100110AULL, 0x000000001422002214ULL, 0x000000002844004428ULL, 0x000000005088008850ULL, 0x00000000A0100010A0ULL, 0x000000004020002040ULL,
0x000000020400040200ULL, 0x000000050800080500ULL, 0x0000000A1100110A00ULL, 0x000000142200221400ULL, 0x000000284400442800ULL, 0x000000508800885000ULL, 0x000000A0100010A000ULL, 0x000000402000204000ULL,
0x000002040004020000ULL, 0x000005080008050000ULL, 0x00000A1100110A0000ULL, 0x000014220022140000ULL, 0x000028440044280000ULL, 0x000050880088500000ULL, 0x0000A0100010A00000ULL, 0x000040200020400000ULL,
0x000204000402000000ULL, 0x000508000805000000ULL, 0x000A1100110A000000ULL, 0x001422002214000000ULL, 0x002844004428000000ULL, 0x005088008850000000ULL, 0x00A0100010A0000000ULL, 0x004020002040000000ULL,
0x000400040200000000ULL, 0x000800080500000000ULL, 0x001100110A00000000ULL, 0x002200221400000000ULL, 0x004400442800000000ULL, 0x008800885000000000ULL, 0x00100010A000000000ULL, 0x002000204000000000ULL,
0x000004020000000000ULL, 0x000008050000000000ULL, 0x0000110A0000000000ULL, 0x000022140000000000ULL, 0x000044280000000000ULL, 0x000088500000000000ULL, 0x000010A00000000000ULL, 0x000020400000000000ULL};
BITBOARD const ROOK_NORTH[64]=
{0x0101010101010100LL, 0x0202020202020200LL, 0x0404040404040400LL, 0x0808080808080800LL, 0x1010101010101000LL, 0x2020202020202000LL, 0x4040404040404000LL, 0x8080808080808000LL,
0x0101010101010000LL, 0x0202020202020000LL, 0x0404040404040000LL, 0x0808080808080000LL, 0x1010101010100000LL, 0x2020202020200000LL, 0x4040404040400000LL, 0x8080808080800000LL,
0x0101010101000000LL, 0x0202020202000000LL, 0x0404040404000000LL, 0x0808080808000000LL, 0x1010101010000000LL, 0x2020202020000000LL, 0x4040404040000000LL, 0x8080808080000000LL,
0x0101010100000000LL, 0x0202020200000000LL, 0x0404040400000000LL, 0x0808080800000000LL, 0x1010101000000000LL, 0x2020202000000000LL, 0x4040404000000000LL, 0x8080808000000000LL,
0x0101010000000000LL, 0x0202020000000000LL, 0x0404040000000000LL, 0x0808080000000000LL, 0x1010100000000000LL, 0x2020200000000000LL, 0x4040400000000000LL, 0x8080800000000000LL,
0x0101000000000000LL, 0x0202000000000000LL, 0x0404000000000000LL, 0x0808000000000000LL, 0x1010000000000000LL, 0x2020000000000000LL, 0x4040000000000000LL, 0x8080000000000000LL,
0x0100000000000000LL, 0x0200000000000000LL, 0x0400000000000000LL, 0x0800000000000000LL, 0x1000000000000000LL, 0x2000000000000000LL, 0x4000000000000000LL, 0x8000000000000000LL,
0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL};
BITBOARD const ROOK_SOUTH[64]=
{0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000001LL, 0x0000000000000002LL, 0x0000000000000004LL,
0x0000000000000008LL, 0x0000000000000010LL, 0x0000000000000020LL, 0x0000000000000040LL, 0x0000000000000080LL, 0x0000000000000101LL, 0x0000000000000202LL, 0x0000000000000404LL, 0x0000000000000808LL, 0x0000000000001010LL, 0x0000000000002020LL,
0x0000000000004040LL, 0x0000000000008080LL, 0x0000000000010101LL, 0x0000000000020202LL, 0x0000000000040404LL, 0x0000000000080808LL, 0x0000000000101010LL, 0x0000000000202020LL, 0x0000000000404040LL, 0x0000000000808080LL, 0x0000000001010101LL,
0x0000000002020202LL, 0x0000000004040404LL, 0x0000000008080808LL, 0x0000000010101010LL, 0x0000000020202020LL, 0x0000000040404040LL, 0x0000000080808080LL, 0x0000000101010101LL, 0x0000000202020202LL, 0x0000000404040404LL, 0x0000000808080808LL,
0x0000001010101010LL, 0x0000002020202020LL, 0x0000004040404040LL, 0x0000008080808080LL, 0x0000010101010101LL, 0x0000020202020202LL, 0x0000040404040404LL, 0x0000080808080808LL, 0x0000101010101010LL, 0x0000202020202020LL, 0x0000404040404040LL,
0x0000808080808080LL, 0x0001010101010101LL, 0x0002020202020202LL, 0x0004040404040404LL, 0x0008080808080808LL, 0x0010101010101010LL, 0x0020202020202020LL, 0x0040404040404040LL, 0x0080808080808080LL};
BITBOARD const ROOK_EAST[64]=
{0x00000000000000feLL, 0x00000000000000fcLL, 0x00000000000000f8LL, 0x00000000000000f0LL, 0x00000000000000e0LL, 0x00000000000000c0LL, 0x0000000000000080LL, 0x0000000000000000LL, 0x000000000000fe00LL, 0x000000000000fc00LL, 0x000000000000f800LL,
0x000000000000f000LL, 0x000000000000e000LL, 0x000000000000c000LL, 0x0000000000008000LL, 0x0000000000000000LL, 0x0000000000fe0000LL, 0x0000000000fc0000LL, 0x0000000000f80000LL, 0x0000000000f00000LL, 0x0000000000e00000LL, 0x0000000000c00000LL,
0x0000000000800000LL, 0x0000000000000000LL, 0x00000000fe000000LL, 0x00000000fc000000LL, 0x00000000f8000000LL, 0x00000000f0000000LL, 0x00000000e0000000LL, 0x00000000c0000000LL, 0x0000000080000000LL, 0x0000000000000000LL, 0x000000fe00000000LL,
0x000000fc00000000LL, 0x000000f800000000LL, 0x000000f000000000LL, 0x000000e000000000LL, 0x000000c000000000LL, 0x0000008000000000LL, 0x0000000000000000LL, 0x0000fe0000000000LL, 0x0000fc0000000000LL, 0x0000f80000000000LL, 0x0000f00000000000LL,
0x0000e00000000000LL, 0x0000c00000000000LL, 0x0000800000000000LL, 0x0000000000000000LL, 0x00fe000000000000LL, 0x00fc000000000000LL, 0x00f8000000000000LL, 0x00f0000000000000LL, 0x00e0000000000000LL, 0x00c0000000000000LL, 0x0080000000000000LL,
0x0000000000000000LL, 0xfe00000000000000LL, 0xfc00000000000000LL, 0xf800000000000000LL, 0xf000000000000000LL, 0xe000000000000000LL, 0xc000000000000000LL, 0x8000000000000000LL, 0x0000000000000000LL};
BITBOARD const ROOK_VEST[64]=
{0x0000000000000000LL, 0x0000000000000001LL, 0x0000000000000003LL, 0x0000000000000007LL, 0x000000000000000fLL, 0x000000000000001fLL, 0x000000000000003fLL, 0x000000000000007fLL, 0x0000000000000000LL, 0x0000000000000100LL, 0x0000000000000300LL,
0x0000000000000700LL, 0x0000000000000f00LL, 0x0000000000001f00LL, 0x0000000000003f00LL, 0x0000000000007f00LL, 0x0000000000000000LL, 0x0000000000010000LL, 0x0000000000030000LL, 0x0000000000070000LL, 0x00000000000f0000LL, 0x00000000001f0000LL,
0x00000000003f0000LL, 0x00000000007f0000LL, 0x0000000000000000LL, 0x0000000001000000LL, 0x0000000003000000LL, 0x0000000007000000LL, 0x000000000f000000LL, 0x000000001f000000LL, 0x000000003f000000LL, 0x000000007f000000LL, 0x0000000000000000LL,
0x0000000100000000LL, 0x0000000300000000LL, 0x0000000700000000LL, 0x0000000f00000000LL, 0x0000001f00000000LL, 0x0000003f00000000LL, 0x0000007f00000000LL, 0x0000000000000000LL, 0x0000010000000000LL, 0x0000030000000000LL, 0x0000070000000000LL,
0x00000f0000000000LL, 0x00001f0000000000LL, 0x00003f0000000000LL, 0x00007f0000000000LL, 0x0000000000000000LL, 0x0001000000000000LL, 0x0003000000000000LL, 0x0007000000000000LL, 0x000f000000000000LL, 0x001f000000000000LL, 0x003f000000000000LL,
0x007f000000000000LL, 0x0000000000000000LL, 0x0100000000000000LL, 0x0300000000000000LL, 0x0700000000000000LL, 0x0f00000000000000LL, 0x1f00000000000000LL, 0x3f00000000000000LL, 0x7f00000000000000LL};
BITBOARD const BISHOP_NE[64]=
{0x8040201008040200LL, 0x0080402010080400LL, 0x0000804020100800LL, 0x0000008040201000LL, 0x0000000080402000LL, 0x0000000000804000LL, 0x0000000000008000LL, 0x0000000000000000LL, 0x4020100804020000LL, 0x8040201008040000LL, 0x0080402010080000LL,
0x0000804020100000LL, 0x0000008040200000LL, 0x0000000080400000LL, 0x0000000000800000LL, 0x0000000000000000LL, 0x2010080402000000LL, 0x4020100804000000LL, 0x8040201008000000LL, 0x0080402010000000LL, 0x0000804020000000LL, 0x0000008040000000LL,
0x0000000080000000LL, 0x0000000000000000LL, 0x1008040200000000LL, 0x2010080400000000LL, 0x4020100800000000LL, 0x8040201000000000LL, 0x0080402000000000LL, 0x0000804000000000LL, 0x0000008000000000LL, 0x0000000000000000LL, 0x0804020000000000LL,
0x1008040000000000LL, 0x2010080000000000LL, 0x4020100000000000LL, 0x8040200000000000LL, 0x0080400000000000LL, 0x0000800000000000LL, 0x0000000000000000LL, 0x0402000000000000LL, 0x0804000000000000LL, 0x1008000000000000LL, 0x2010000000000000LL,
0x4020000000000000LL, 0x8040000000000000LL, 0x0080000000000000LL, 0x0000000000000000LL, 0x0200000000000000LL, 0x0400000000000000LL, 0x0800000000000000LL, 0x1000000000000000LL, 0x2000000000000000LL, 0x4000000000000000LL, 0x8000000000000000LL,
0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL};
BITBOARD const BISHOP_NV[64]=
{0x0000000000000000LL, 0x0000000000000100LL, 0x0000000000010200LL, 0x0000000001020400LL, 0x0000000102040800LL, 0x0000010204081000LL, 0x0001020408102000LL, 0x0102040810204000LL, 0x0000000000000000LL, 0x0000000000010000LL, 0x0000000001020000LL,
0x0000000102040000LL, 0x0000010204080000LL, 0x0001020408100000LL, 0x0102040810200000LL, 0x0204081020400000LL, 0x0000000000000000LL, 0x0000000001000000LL, 0x0000000102000000LL, 0x0000010204000000LL, 0x0001020408000000LL, 0x0102040810000000LL,
0x0204081020000000LL, 0x0408102040000000LL, 0x0000000000000000LL, 0x0000000100000000LL, 0x0000010200000000LL, 0x0001020400000000LL, 0x0102040800000000LL, 0x0204081000000000LL, 0x0408102000000000LL, 0x0810204000000000LL, 0x0000000000000000LL,
0x0000010000000000LL, 0x0001020000000000LL, 0x0102040000000000LL, 0x0204080000000000LL, 0x0408100000000000LL, 0x0810200000000000LL, 0x1020400000000000LL, 0x0000000000000000LL, 0x0001000000000000LL, 0x0102000000000000LL, 0x0204000000000000LL,
0x0408000000000000LL, 0x0810000000000000LL, 0x1020000000000000LL, 0x2040000000000000LL, 0x0000000000000000LL, 0x0100000000000000LL, 0x0200000000000000LL, 0x0400000000000000LL, 0x0800000000000000LL, 0x1000000000000000LL, 0x2000000000000000LL,
0x4000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL};
BITBOARD const BISHOP_SE[64]=
{0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000002LL, 0x0000000000000004LL, 0x0000000000000008LL,
0x0000000000000010LL, 0x0000000000000020LL, 0x0000000000000040LL, 0x0000000000000080LL, 0x0000000000000000LL, 0x0000000000000204LL, 0x0000000000000408LL, 0x0000000000000810LL, 0x0000000000001020LL, 0x0000000000002040LL, 0x0000000000004080LL,
0x0000000000008000LL, 0x0000000000000000LL, 0x0000000000020408LL, 0x0000000000040810LL, 0x0000000000081020LL, 0x0000000000102040LL, 0x0000000000204080LL, 0x0000000000408000LL, 0x0000000000800000LL, 0x0000000000000000LL, 0x0000000002040810LL,
0x0000000004081020LL, 0x0000000008102040LL, 0x0000000010204080LL, 0x0000000020408000LL, 0x0000000040800000LL, 0x0000000080000000LL, 0x0000000000000000LL, 0x0000000204081020LL, 0x0000000408102040LL, 0x0000000810204080LL, 0x0000001020408000LL,
0x0000002040800000LL, 0x0000004080000000LL, 0x0000008000000000LL, 0x0000000000000000LL, 0x0000020408102040LL, 0x0000040810204080LL, 0x0000081020408000LL, 0x0000102040800000LL, 0x0000204080000000LL, 0x0000408000000000LL, 0x0000800000000000LL,
0x0000000000000000LL, 0x0002040810204080LL, 0x0004081020408000LL, 0x0008102040800000LL, 0x0010204080000000LL, 0x0020408000000000LL, 0x0040800000000000LL, 0x0080000000000000LL, 0x0000000000000000LL};
BITBOARD const BISHOP_SV[64]=
{0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000000LL, 0x0000000000000001LL, 0x0000000000000002LL,
0x0000000000000004LL, 0x0000000000000008LL, 0x0000000000000010LL, 0x0000000000000020LL, 0x0000000000000040LL, 0x0000000000000000LL, 0x0000000000000100LL, 0x0000000000000201LL, 0x0000000000000402LL, 0x0000000000000804LL, 0x0000000000001008LL,
0x0000000000002010LL, 0x0000000000004020LL, 0x0000000000000000LL, 0x0000000000010000LL, 0x0000000000020100LL, 0x0000000000040201LL, 0x0000000000080402LL, 0x0000000000100804LL, 0x0000000000201008LL, 0x0000000000402010LL, 0x0000000000000000LL,
0x0000000001000000LL, 0x0000000002010000LL, 0x0000000004020100LL, 0x0000000008040201LL, 0x0000000010080402LL, 0x0000000020100804LL, 0x0000000040201008LL, 0x0000000000000000LL, 0x0000000100000000LL, 0x0000000201000000LL, 0x0000000402010000LL,
0x0000000804020100LL, 0x0000001008040201LL, 0x0000002010080402LL, 0x0000004020100804LL, 0x0000000000000000LL, 0x0000010000000000LL, 0x0000020100000000LL, 0x0000040201000000LL, 0x0000080402010000LL, 0x0000100804020100LL, 0x0000201008040201LL,
0x0000402010080402LL, 0x0000000000000000LL, 0x0001000000000000LL, 0x0002010000000000LL, 0x0004020100000000LL, 0x0008040201000000LL, 0x0010080402010000LL, 0x0020100804020100LL, 0x0040201008040201LL};
BITBOARD const KING_MOVES[64]=
{0x0000000000000302LL,0x0000000000000705LL,0x0000000000000e0aLL,0x0000000000001c14LL,0x0000000000003828LL,0x0000000000007050LL,0x000000000000e0a0LL,0x000000000000c040LL,0x0000000000030203LL,0x0000000000070507LL,0x00000000000e0a0eLL,0x00000000001c141cLL,
0x0000000000382838LL,0x0000000000705070LL,0x0000000000e0a0e0LL,0x0000000000c040c0LL,0x0000000003020300LL,0x0000000007050700LL,0x000000000e0a0e00LL,0x000000001c141c00LL,0x0000000038283800LL,0x0000000070507000LL,0x00000000e0a0e000LL,0x00000000c040c000LL,
0x0000000302030000LL,0x0000000705070000LL,0x0000000e0a0e0000LL,0x0000001c141c0000LL,0x0000003828380000LL,0x0000007050700000LL,0x000000e0a0e00000LL,0x000000c040c00000LL,0x0000030203000000LL,0x0000070507000000LL,0x00000e0a0e000000LL,0x00001c141c000000LL,
0x0000382838000000LL,0x0000705070000000LL,0x0000e0a0e0000000LL,0x0000c040c0000000LL,0x0003020300000000LL,0x0007050700000000LL,0x000e0a0e00000000LL,0x001c141c00000000LL,0x0038283800000000LL,0x0070507000000000LL,0x00e0a0e000000000LL,0x00c040c000000000LL,
0x0302030000000000LL,0x0705070000000000LL,0x0e0a0e0000000000LL,0x1c141c0000000000LL,0x3828380000000000LL,0x7050700000000000LL,0xe0a0e00000000000LL,0xc040c00000000000LL,0x0203000000000000LL,0x0507000000000000LL,0x0a0e000000000000LL,0x141c000000000000LL,
0x2838000000000000LL,0x5070000000000000LL,0xa0e0000000000000LL,0x40c0000000000000LL};
BITBOARD const POWN_ONLY_MOVES_WHITE[64]=
{0x0804963000000000LL, 0x0804963000000001LL, 0x0804963000000002LL, 0x0804963000000003LL, 0x0804963000000004LL, 0x0804963000000005LL, 0x0804963000000006LL, 0x0804963000000007LL, 0x0804963000000008LL, 0x0804963000000009LL, 0x080496300000000aLL,
0x080496300000000bLL, 0x080496300000000cLL, 0x080496300000000dLL, 0x080496300000000eLL, 0x080496300000000fLL, 0x0804963000000010LL, 0x0804963000000011LL, 0x0804963000000012LL, 0x0804963000000013LL, 0x0804963000000014LL, 0x0804963000000015LL,
0x0804963000000016LL, 0x0804963000000017LL, 0x0804963000000018LL, 0x0804963000000019LL, 0x080496300000001aLL, 0x080496300000001bLL, 0x080496300000001cLL, 0x080496300000001dLL, 0x080496300000001eLL, 0x080496300000001fLL, 0x0804963000000020LL,
0x0804963000000021LL, 0x0804963000000022LL, 0x0804963000000023LL, 0x0804963000000024LL, 0x0804963000000025LL, 0x0804963000000026LL, 0x0804963000000027LL, 0x0804963000000028LL, 0x0804963000000029LL, 0x080496300000002aLL, 0x080496300000002bLL,
0x080496300000002cLL, 0x080496300000002dLL, 0x080496300000002eLL, 0x080496300000002fLL, 0x0804963000000030LL, 0x0804963000000031LL, 0x0804963000000032LL, 0x0804963000000033LL, 0x0804963000000034LL, 0x0804963000000035LL, 0x0804963000000036LL,
0x0804963000000037LL, 0x0804963000000038LL, 0x0804963000000039LL, 0x080496300000003aLL, 0x080496300000003bLL, 0x080496300000003cLL, 0x080496300000003dLL, 0x080496300000003eLL, 0x080496300000003fLL};
BITBOARD const POWN_ONLY_MOVES_BLACK[64]=
{0x0804963000000000LL, 0x0804963000000001LL, 0x0804963000000002LL, 0x0804963000000003LL, 0x0804963000000004LL, 0x0804963000000005LL, 0x0804963000000006LL, 0x0804963000000007LL, 0x0804963000000008LL, 0x0804963000000009LL, 0x080496300000000aLL,
0x080496300000000bLL, 0x080496300000000cLL, 0x080496300000000dLL, 0x080496300000000eLL, 0x080496300000000fLL, 0x0804963000000010LL, 0x0804963000000011LL, 0x0804963000000012LL, 0x0804963000000013LL, 0x0804963000000014LL, 0x0804963000000015LL,
0x0804963000000016LL, 0x0804963000000017LL, 0x0804963000000018LL, 0x0804963000000019LL, 0x080496300000001aLL, 0x080496300000001bLL, 0x080496300000001cLL, 0x080496300000001dLL, 0x080496300000001eLL, 0x080496300000001fLL, 0x0804963000000020LL,
0x0804963000000021LL, 0x0804963000000022LL, 0x0804963000000023LL, 0x0804963000000024LL, 0x0804963000000025LL, 0x0804963000000026LL, 0x0804963000000027LL, 0x0804963000000028LL, 0x0804963000000029LL, 0x080496300000002aLL, 0x080496300000002bLL,
0x080496300000002cLL, 0x080496300000002dLL, 0x080496300000002eLL, 0x080496300000002fLL, 0x0804963000000030LL, 0x0804963000000031LL, 0x0804963000000032LL, 0x0804963000000033LL, 0x0804963000000034LL, 0x0804963000000035LL, 0x0804963000000036LL,
0x0804963000000037LL, 0x0804963000000038LL, 0x0804963000000039LL, 0x080496300000003aLL, 0x080496300000003bLL, 0x080496300000003cLL, 0x080496300000003dLL, 0x080496300000003eLL, 0x080496300000003fLL};
BITBOARD const POWN_ATTACK_MOVES_WHITE[64]={
0x0804963000000000LL, 0x0804963000000001LL, 0x0804963000000002LL, 0x0804963000000003LL, 0x0804963000000004LL, 0x0804963000000005LL, 0x0804963000000006LL, 0x0804963000000007LL, 0x0804963000000008LL, 0x0804963000000009LL, 0x080496300000000aLL,
0x080496300000000bLL, 0x080496300000000cLL, 0x080496300000000dLL, 0x080496300000000eLL, 0x080496300000000fLL, 0x0804963000000010LL, 0x0804963000000011LL, 0x0804963000000012LL, 0x0804963000000013LL, 0x0804963000000014LL, 0x0804963000000015LL,
0x0804963000000016LL, 0x0804963000000017LL, 0x0804963000000018LL, 0x0804963000000019LL, 0x080496300000001aLL, 0x080496300000001bLL, 0x080496300000001cLL, 0x080496300000001dLL, 0x080496300000001eLL, 0x080496300000001fLL, 0x0804963000000020LL,
0x0804963000000021LL, 0x0804963000000022LL, 0x0804963000000023LL, 0x0804963000000024LL, 0x0804963000000025LL, 0x0804963000000026LL, 0x0804963000000027LL, 0x0804963000000028LL, 0x0804963000000029LL, 0x080496300000002aLL, 0x080496300000002bLL,
0x080496300000002cLL, 0x080496300000002dLL, 0x080496300000002eLL, 0x080496300000002fLL, 0x0804963000000030LL, 0x0804963000000031LL, 0x0804963000000032LL, 0x0804963000000033LL, 0x0804963000000034LL, 0x0804963000000035LL, 0x0804963000000036LL,
0x0804963000000037LL, 0x0804963000000038LL, 0x0804963000000039LL, 0x080496300000003aLL, 0x080496300000003bLL, 0x080496300000003cLL, 0x080496300000003dLL, 0x080496300000003eLL, 0x080496300000003fLL};
BITBOARD const POWN_ATTACK_MOVES_BLACK[64]={
0x0804963000000000LL, 0x0804963000000001LL, 0x0804963000000002LL, 0x0804963000000003LL, 0x0804963000000004LL, 0x0804963000000005LL, 0x0804963000000006LL, 0x0804963000000007LL, 0x0804963000000008LL, 0x0804963000000009LL, 0x080496300000000aLL,
0x080496300000000bLL, 0x080496300000000cLL, 0x080496300000000dLL, 0x080496300000000eLL, 0x080496300000000fLL, 0x0804963000000010LL, 0x0804963000000011LL, 0x0804963000000012LL, 0x0804963000000013LL, 0x0804963000000014LL, 0x0804963000000015LL,
0x0804963000000016LL, 0x0804963000000017LL, 0x0804963000000018LL, 0x0804963000000019LL, 0x080496300000001aLL, 0x080496300000001bLL, 0x080496300000001cLL, 0x080496300000001dLL, 0x080496300000001eLL, 0x080496300000001fLL, 0x0804963000000020LL,
0x0804963000000021LL, 0x0804963000000022LL, 0x0804963000000023LL, 0x0804963000000024LL, 0x0804963000000025LL, 0x0804963000000026LL, 0x0804963000000027LL, 0x0804963000000028LL, 0x0804963000000029LL, 0x080496300000002aLL, 0x080496300000002bLL,
0x080496300000002cLL, 0x080496300000002dLL, 0x080496300000002eLL, 0x080496300000002fLL, 0x0804963000000030LL, 0x0804963000000031LL, 0x0804963000000032LL, 0x0804963000000033LL, 0x0804963000000034LL, 0x0804963000000035LL, 0x0804963000000036LL,
0x0804963000000037LL, 0x0804963000000038LL, 0x0804963000000039LL, 0x080496300000003aLL, 0x080496300000003bLL, 0x080496300000003cLL, 0x080496300000003dLL, 0x080496300000003eLL, 0x080496300000003fLL};
#endif /* _STUFF_H */