Commit | Line | Data |
---|---|---|
953f5044 WJ |
1 | /* header file for move generator hes 890318 |
2 | Modified: 890510 minor bug fixed in Newataks | |
3 | 890606 NEWMOVE levels 1-6 */ | |
4 | ||
5 | #if (NEWMOVE >= 1) | |
6 | extern short distdata[64][64]; | |
7 | extern short taxidata[64][64]; | |
8 | ||
9 | #define taxicab(a,b) taxidata[a][b] | |
10 | #define distance(a,b) distdata[a][b] | |
11 | ||
12 | extern void Initialize_dist(); | |
13 | #endif | |
14 | ||
15 | #if (NEWMOVE >= 2) | |
16 | struct sqdata { | |
17 | short nextpos; | |
18 | short nextdir; | |
19 | }; | |
20 | extern struct sqdata posdata[3][8][64][64]; | |
21 | ||
22 | extern void Initialize_moves(); | |
23 | ||
24 | #define ataks(side,a)\ | |
25 | {\ | |
26 | register short u,c,sq;\ | |
27 | register struct sqdata *p;\ | |
28 | short i,piece,*PL;\ | |
29 | \ | |
30 | for (u = 64; u; a[--u] = 0); \ | |
31 | PL = PieceList[side];\ | |
32 | for (i = 0; i <= PieceCnt[side]; i++)\ | |
33 | {\ | |
34 | sq = PL[i];\ | |
35 | piece = board[sq];\ | |
36 | c = control[piece];\ | |
37 | p = posdata[side][piece][sq];\ | |
38 | if (piece == pawn) {\ | |
39 | u = p[sq].nextdir; /* follow captures thread */\ | |
40 | while (u != sq) {\ | |
41 | a[u] = ++a[u] | c;\ | |
42 | u = p[u].nextdir;\ | |
43 | }\ | |
44 | }\ | |
45 | else {\ | |
46 | u = p[sq].nextpos;\ | |
47 | while (u != sq) {\ | |
48 | a[u] = ++a[u] | c;\ | |
49 | if (color[u] == neutral)\ | |
50 | u = p[u].nextpos;\ | |
51 | else\ | |
52 | u = p[u].nextdir;\ | |
53 | }\ | |
54 | }\ | |
55 | }\ | |
56 | } | |
57 | #endif | |
58 | ||
59 | #if (NEWMOVE >= 3) | |
60 | extern short PieceList[2][16]; | |
61 | ||
62 | extern int Sqatakd(); | |
63 | #endif | |
64 | ||
65 | #if (NEWMOVE > 3) | |
66 | extern short Kfield[2][64],PINVAL,control[7],hung[2],XRAY; | |
67 | ||
68 | extern BRscan(); | |
69 | #endif | |
70 | ||
71 | #if (NEWMOVE > 4) | |
72 | #define valueQ 1100 | |
73 | ||
74 | extern short PieceCnt[2],value[7],svalue[64]; | |
75 | ||
76 | extern CaptureList(); | |
77 | #endif | |
78 | ||
79 | #if (NEWMOVE > 5) | |
80 | extern GenMoves(); | |
81 | #endif |