📄 thinker.cs
字号:
j--;
}
break;
case 9:
case 10:
i=x+1;flag=false;
while(i<=9)
{
if(NOMAN(i,y))
{
if(!flag) ADD(n,i,y)
}
else
{
if(!flag)flag=true;
else
{
if(NORED(i,y)) ADD(n,i,y)
break;
}
}
i++;
}
i=x-1;flag=false;
while(i>=1)
{
if(NOMAN(i,y))
{
if(!flag) ADD(n,i,y)
}
else
{
if(!flag)flag=true;
else
{
if(NORED(i,y)) ADD(n,i,y)
break;
}
}
i--;
}
j=y+1;flag=false;
while(j<=10)
{
if(NOMAN(x,j))
{
if(!flag) ADD(n,x,j)
}
else
{
if(!flag)flag=true;
else
{
if(NORED(x,j)) ADD(n,x,j)
break;
}
}
j++;
}
j=y-1;flag=false;
while(j>=1)
{
if(NOMAN(x,j))
{
if(!flag) ADD(n,x,j)
}
else
{
if(!flag)flag=true;
else
{
if(NORED(x,j)) ADD(n,x,j)
break;
}
}
j--;
}
break;
case 25:
case 26:
i=x+1;flag=false;
while(i<=9)
{
if(NOMAN(i,y))
{
if(!flag) ADD(n,i,y)
}
else
{
if(!flag)flag=true;
else
{
if(NOBLACK(i,y)) ADD(n,i,y)
break;
}
}
i++;
}
i=x-1;flag=false;
while(i>=1)
{
if(NOMAN(i,y))
{
if(!flag) ADD(n,i,y)
}
else
{
if(!flag)flag=true;
else
{
if(NOBLACK(i,y)) ADD(n,i,y)
break;
}
}
i--;
}
j=y+1;flag=false;
while(j<=10)
{
if(NOMAN(x,j))
{
if(!flag) ADD(n,x,j)
}
else
{
if(!flag)flag=true;
else
{
if(NOBLACK(x,j)) ADD(n,x,j)
break;
}
}
j++;
}
j=y-1;flag=false;
while(j>=1)
{
if(NOMAN(x,j))
{
if(!flag) ADD(n,x,j)
}
else
{
if(!flag)flag=true;
else
{
if(NOBLACK(x,j)) ADD(n,x,j)
break;
}
}
j--;
}
break;
case 11:
case 12:
case 13:
case 14:
case 15:
j=y-1;
if(j>=1 && NORED(x,j)) ADD(n,x,j)
if(y<=5)
{
i=x+1;if(i<=9 && NORED(i,y)) ADD(n,i,y)
i=x-1;if(i>=1 && NORED(i,y)) ADD(n,i,y)
}
break;
case 27:
case 28:
case 29:
case 30:
case 31:
j=y+1;
if(j<=10 && NOBLACK(x,j)) ADD(n,x,j)
if(y>=6)
{
i=x+1;if(i<=9 && NOBLACK(i,y)) ADD(n,i,y)
i=x-1;if(i>=1 && NOBLACK(i,y)) ADD(n,i,y)
}
break;
default :
break;
}
}
return true;
_NOKING:
return false;
}
//#define CV(man,tx,ty) {k=tmap[tx][ty];v1[man]+=1;if(k!=32)v2[man][k]=1;}
void ContactV()
{
static int i,j,n,x,y;
static bool flag;
for(n=0;n<=31;n++)
{
x=tmanx[n];
if(!x)continue;
y=tmany[n];
switch(n)
{
case 0:
if(tmanx[0]==tmanx[16]) //将帅在同一列
{
flag=false;
for(j=tmany[16]+1;j<tmany[0];j++)
{
if(tmap[x][j]!=32)
{
flag=true;
break;
}
}
if (!flag)
{
CV(0,x,tmany[16]);
}
}
j=y+1;if(j<=10 ) CV(0,x,j)
j=y-1;if(j>=8 ) CV(0,x,j)
i=x+1;if(i<=6 ) CV(0,i,y)
i=x-1;if(i>=4 ) CV(0,i,y)
break;
case 16:
if(tmanx[0]==tmanx[16]) //将帅在同一列
{
flag=false;
for(j=tmany[16]+1;j<tmany[0];j++)
{
if(tmap[x][j]!=32)
{
flag=true;
break;
}
}
if (!flag)
{
CV(16,x,tmany[0]);
}
}
j=y+1;if(j<=3 ) CV(16,x,j)
j=y-1;if(j>=1 ) CV(16,x,j)
i=x+1;if(i<=6 ) CV(16,i,y)
i=x-1;if(i>=4 ) CV(16,i,y)
break;
case 1:
case 2:
i=x+1;j=y+1;if(i<=6 && j<=10 ) CV(n,i,j)
i=x+1;j=y-1;if(i<=6 && j>=8 ) CV(n,i,j)
i=x-1;j=y+1;if(i>=4 && j<=10 ) CV(n,i,j)
i=x-1;j=y-1;if(i>=4 && j>=8 ) CV(n,i,j)
break;
case 17:
case 18:
i=x+1;j=y+1;if(i<=6 && j<=3 ) CV(n,i,j)
i=x+1;j=y-1;if(i<=6 && j>=1 ) CV(n,i,j)
i=x-1;j=y+1;if(i>=4 && j<=3 ) CV(n,i,j)
i=x-1;j=y-1;if(i>=4 && j>=1 ) CV(n,i,j)
break;
case 3:
case 4:
i=x+2;j=y+2;if(i<=9 && j<=10 ) if(NOMAN(x+1,y+1)) CV(n,i,j)
i=x+2;j=y-2;if(i<=9 && j>=6 ) if(NOMAN(x+1,y-1)) CV(n,i,j)
i=x-2;j=y+2;if(i>=1 && j<=10 ) if(NOMAN(x-1,y+1)) CV(n,i,j)
i=x-2;j=y-2;if(i>=1 && j>=6 ) if(NOMAN(x-1,y-1)) CV(n,i,j)
break;
case 19:
case 20:
i=x+2;j=y+2;if(i<=9 && j<=5 ) if(NOMAN(x+1,y+1)) CV(n,i,j)
i=x+2;j=y-2;if(i<=9 && j>=1 ) if(NOMAN(x+1,y-1)) CV(n,i,j)
i=x-2;j=y+2;if(i>=1 && j<=5 ) if(NOMAN(x-1,y+1)) CV(n,i,j)
i=x-2;j=y-2;if(i>=1 && j>=1 ) if(NOMAN(x-1,y-1)) CV(n,i,j)
break;
case 5:
case 6:
i=x+1;
if(NOMAN(i,y))
{
i=x+2;j=y+1;if(i<=9 && j<=10 ) CV(n,i,j)
i=x+2;j=y-1;if(i<=9 && j>=1 ) CV(n,i,j)
}
i=x-1;
if(NOMAN(i,y))
{
i=x-2;j=y+1;if(i>=1 && j<=10 ) CV(n,i,j)
i=x-2;j=y-1;if(i>=1 && j>=1 ) CV(n,i,j)
}
j=y+1;
if(NOMAN(x,j))
{
i=x+1;j=y+2;if(i<=9 && j<=10 ) CV(n,i,j)
i=x-1;j=y+2;if(i>=1 && j<=10 ) CV(n,i,j)
}
j=y-1;
if(NOMAN(x,j))
{
i=x+1;j=y-2;if(i<=9 && j>=1 ) CV(n,i,j)
i=x-1;j=y-2;if(i>=1 && j>=1 ) CV(n,i,j)
}
break;
case 21:
case 22:
i=x+1;
if(NOMAN(i,y))
{
i=x+2;j=y+1;if(i<=9 && j<=10 ) CV(n,i,j)
i=x+2;j=y-1;if(i<=9 && j>=1 ) CV(n,i,j)
}
i=x-1;
if(NOMAN(i,y))
{
i=x-2;j=y+1;if(i>=1 && j<=10 ) CV(n,i,j)
i=x-2;j=y-1;if(i>=1 && j>=1 ) CV(n,i,j)
}
j=y+1;
if(NOMAN(x,j))
{
i=x+1;j=y+2;if(i<=9 && j<=10 ) CV(n,i,j)
i=x-1;j=y+2;if(i>=1 && j<=10 ) CV(n,i,j)
}
j=y-1;
if(NOMAN(x,j))
{
i=x+1;j=y-2;if(i<=9 && j>=1 ) CV(n,i,j)
i=x-1;j=y-2;if(i>=1 && j>=1 ) CV(n,i,j)
}
break;
case 7:
case 8:
i=x+1;
while(i<=9)
{
if (NOMAN(i,y)) CV(n,i,y)
else
{
CV(n,i,y)
break;
}
i++;
}
i=x-1;
while(i>=1)
{
if (NOMAN(i,y)) CV(n,i,y)
else
{
CV(n,i,y)
break;
}
i--;
}
j=y+1;
while(j<=10)
{
if (NOMAN(x,j)) CV(n,x,j)
else
{
CV(n,x,j)
break;
}
j++;
}
j=y-1;
while(j>=1)
{
if (NOMAN(x,j)) CV(n,x,j)
else
{
CV(n,x,j)
break;
}
j--;
}
break;
case 23:
case 24:
i=x+1;
while(i<=9)
{
if (NOMAN(i,y)) CV(n,i,y)
else
{
CV(n,i,y)
break;
}
i++;
}
i=x-1;
while(i>=1)
{
if (NOMAN(i,y)) CV(n,i,y)
else
{
CV(n,i,y)
break;
}
i--;
}
j=y+1;
while(j<=10)
{
if (NOMAN(x,j)) CV(n,x,j)
else
{
CV(n,x,j)
break;
}
j++;
}
j=y-1;
while(j>=1)
{
if (NOMAN(x,j)) CV(n,x,j)
else
{
CV(n,x,j)
break;
}
j--;
}
break;
case 9:
case 10:
i=x+1;flag=false;
while(i<=9)
{
if(NOMAN(i,y))
{
if(!flag) CV(n,i,y)
}
else
{
if(!flag)flag=true;
else
{
CV(n,i,y)
break;
}
}
i++;
}
i=x-1;flag=false;
while(i>=1)
{
if(NOMAN(i,y))
{
if(!flag) CV(n,i,y)
}
else
{
if(!flag)flag=true;
else
{
CV(n,i,y)
break;
}
}
i--;
}
j=y+1;flag=false;
while(j<=10)
{
if(NOMAN(x,j))
{
if(!flag) CV(n,x,j)
}
else
{
if(!flag)flag=true;
else
{
CV(n,x,j)
break;
}
}
j++;
}
j=y-1;flag=false;
while(j>=1)
{
if(NOMAN(x,j))
{
if(!flag) CV(n,x,j)
}
else
{
if(!flag)flag=true;
else
{
CV(n,x,j)
break;
}
}
j--;
}
break;
case 25:
case 26:
i=x+1;flag=false;
while(i<=9)
{
if(NOMAN(i,y))
{
if(!flag) CV(n,i,y)
}
else
{
if(!flag)flag=true;
else
{
CV(n,i,y)
break;
}
}
i++;
}
i=x-1;flag=false;
while(i>=1)
{
if(NOMAN(i,y))
{
if(!flag) CV(n,i,y)
}
else
{
if(!flag)flag=true;
else
{
CV(n,i,y)
break;
}
}
i--;
}
j=y+1;flag=false;
while(j<=10)
{
if(NOMAN(x,j))
{
if(!flag) CV(n,x,j)
}
else
{
if(!flag)flag=true;
else
{
CV(n,x,j)
break;
}
}
j++;
}
j=y-1;flag=false;
while(j>=1)
{
if(NOMAN(x,j))
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -