📄 move.h
字号:
/* header file for move generator hes 890318 Modified: 890510 minor bug fixed in Newataks 890606 NEWMOVE levels 1-6 */#if (NEWMOVE >= 1)extern short distdata[64][64];extern short taxidata[64][64];#define taxicab(a,b) taxidata[a][b]#define distance(a,b) distdata[a][b]extern void Initialize_dist();#endif #if (NEWMOVE >= 2)struct sqdata { short nextpos; short nextdir;};extern struct sqdata posdata[3][8][64][64];extern void Initialize_moves();#define ataks(side,a)\{\ register short u,c,sq;\ register struct sqdata *p;\ short i,piece,*PL;\ \ for (u = 64; u; a[--u] = 0); \ PL = PieceList[side];\ for (i = 0; i <= PieceCnt[side]; i++)\ {\ sq = PL[i];\ piece = board[sq];\ c = control[piece];\ p = posdata[side][piece][sq];\ if (piece == pawn) {\ u = p[sq].nextdir; /* follow captures thread */\ while (u != sq) {\ a[u] = ++a[u] | c;\ u = p[u].nextdir;\ }\ }\ else {\ u = p[sq].nextpos;\ while (u != sq) {\ a[u] = ++a[u] | c;\ if (color[u] == neutral)\ u = p[u].nextpos;\ else\ u = p[u].nextdir;\ }\ }\ }\}#endif#if (NEWMOVE >= 3)extern short PieceList[2][16];extern int Sqatakd();#endif#if (NEWMOVE > 3)extern short Kfield[2][64],PINVAL,control[7],hung[2],XRAY;extern BRscan();#endif#if (NEWMOVE > 4)#define valueQ 1100extern short PieceCnt[2],value[7],svalue[64];extern CaptureList();#endif#if (NEWMOVE > 5)extern GenMoves();#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -