play.h
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C头文件 代码 · 共 79 行
H
79 行
void BACKMOV()
{
u_int mask,d;
int hi,h,n,v;
n = moves[--plycnt];
if ((hi = height[n] += 8) < 24)
l[r[n]]=r[l[n]]=n;
h = hi>>3;
columns[n] >>= 1;
mask = ~(0x80 >> n);
ROWS[h] = (d = ROWS[h]) & mask;
if (v = thrcols[d]) {
--THRCNT[hi+((v&7)-n)];
if (v >>= 3)
--THRCNT[hi+(v-n)];
}
if (d = DIAS[6+n+h]) {
DIAS[6+n+h] = d & mask;
if (v = thrcols[d]) {
--THRCNT[hi-7*((v&7)-n)];
if (v >>= 3)
--THRCNT[hi-7*(v-n)];
}
}
if (d = DIAS[6+n-h]) {
DIAS[6+n-h] = d & mask;
if (v = thrcols[d]) {
--THRCNT[hi+9*((v&7)-n)];
if (v >>= 3)
--THRCNT[hi+9*(v-n)];
}
}
}
void MAKEMOV(n)
int n;
{
u_int mask,d;
int hi,h,v;
moves[plycnt++] = n;
hi = height[n];
h = hi>>3;
if ((height[n] = hi-8) < 16)
l[r[l[n]]=r[n]]=l[n];
columns[n] = columns[n] << 1 BIT;
mask = 0x80 >> n;
d = ROWS[h] |= mask;
if (v = thrcols[d]) {
++THRCNT[hi+((v&7)-n)];
if (v >>= 3)
++THRCNT[hi+(v-n)];
}
if (d = DIAS[6+n+h]) {
DIAS[6+n+h] = d |= mask;
if (v = thrcols[d]) {
++THRCNT[hi-7*((v&7)-n)];
if (v >>= 3)
++THRCNT[hi-7*(v-n)];
}
}
if (d = DIAS[6+n-h]) {
DIAS[6+n-h] = d |= mask;
if (v = thrcols[d]) {
++THRCNT[hi+9*((v&7)-n)];
if (v >>= 3)
++THRCNT[hi+9*(v-n)];
}
}
}
#undef BACKMOV
#undef MAKEMOV
#undef ROWS
#undef DIAS
#undef THRCNT
#undef BIT
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?