中易网

如何用c语言编写一个求围棋气的程序

答案:2  悬赏:30  
解决时间 2021-01-13 18:45
  • 提问者网友:人生佛魔见
  • 2021-01-13 11:16
如何用c语言编写一个求围棋气的程序
最佳答案
  • 二级知识专家网友:傲气稳了全场
  • 2021-01-13 12:36
我写的围棋游戏程序中的数气函数,注解不多.

int CMyView::pointqi(int x, int y, int bow, int e)
{

int i,j,n=1; // n is man number of the mass
int qi=0,kong=0;int pivalue,inpivalue;
int mass[2][100];
int countqi[19][19];//after be counted as qi,make this point 1.
int realeye=0;
for(i=0;i<=18;i++)
{
for(j=0;j<=18;j++)
{
countqi[i][j]=0;
}
}
eat=0;
mass[0][1]=x;
mass[1][1]=y;
if(bow==10)
{pivalue=1000; inpivalue=1;}
else
{pivalue=1; inpivalue=1000;}

for(i=1; i<=n; i++)
{
if(pigroup[mass[0][i]-1][mass[1][i]]==pivalue &&mass[0][i]-1>=0)
{
for(j=1;j<=n;j++) //confirm that the new man is not belong to mass.
{
if(mass[0][i]-1 != mass[0][j] || mass[1][i] != mass[1][j] )
{
if(j!= n)
continue;
else
{
n++;
mass[0][n]=mass[0][i]-1;
mass[1][n]=mass[1][i];
break;
}
}
else
break;
}

}
if(pigroup[mass[0][i]+1][mass[1][i]]==pivalue&&mass[0][i]+1<=18)
{
for(j=1;j<=n;j++) //confirm that the new man is not belong to mass.
{
if(mass[0][i]+1 != mass[0][j] || mass[1][i] != mass[1][j] )
{
if(j!= n)
continue;
else
{
n++;
mass[0][n]=mass[0][i]+1;
mass[1][n]=mass[1][i];
break;
}
}
else
break;
}
}
if(pigroup[mass[0][i]][mass[1][i]-1]==pivalue&&mass[1][i]-1>=0)
{
for(j=1;j<=n;j++) //confirm that the new man is not belong to mass.
{
if(mass[0][i] != mass[0][j] || mass[1][i]-1 != mass[1][j] )
{
if(j!= n)
continue;
else
{
n++;
mass[0][n]=mass[0][i];
mass[1][n]=mass[1][i]-1;
break;
}
}
else
break;
}
}
if(pigroup[mass[0][i]][mass[1][i]+1]==pivalue&&mass[1][i]+1<=18)
{
for(j=1;j<=n;j++) //confirm that the new man is not belong to mass.
{
if(mass[0][i] != mass[0][j] || mass[1][i]+1 != mass[1][j] )
{
if(j!= n)
continue;
else
{
n++;
mass[0][n]=mass[0][i];
mass[1][n]=mass[1][i]+1;
break;
}
}
else
break;
}
}
}
for(j=1;j<=n;j++) //check for all man of this masswhether qi exists.
{
if(pigroup[mass[0][j]-1][mass[1][j]]==0&&mass[0][j]-1>=0&&countqi[mass[0][j]-1][mass[1][j]]==0)
{ qi++;
countqi[mass[0][j]-1][mass[1][j]]=1;
if(judgerealeye(mass[0][j]-1,mass[1][j],bow)==1)
realeye=realeye+1;
}
if(pigroup[mass[0][j]+1][mass[1][j]]==0&&mass[0][j]+1<=18&&countqi[mass[0][j]+1][mass[1][j]]==0)
{ qi++;
countqi[mass[0][j]+1][mass[1][j]]=1;
if(judgerealeye(mass[0][j]+1,mass[1][j],bow)==1)
realeye=realeye+1;
}
if(pigroup[mass[0][j]][mass[1][j]-1]==0 &&mass[1][j]-1>=0&&countqi[mass[0][j]][mass[1][j]-1]==0)
{ qi++;
countqi[mass[0][j]][mass[1][j]-1]=1;
if(judgerealeye(mass[0][j],mass[1][j]-1,bow)==1)
realeye=realeye+1;
}
if(pigroup[mass[0][j]][mass[1][j]+1]==0&&mass[1][j]+1<=18&&countqi[mass[0][j]][mass[1][j]+1]==0)
{ qi++;
countqi[mass[0][j]][mass[1][j]+1]=1;
if(judgerealeye(mass[0][j],mass[1][j]+1,bow)==1)
realeye=realeye+1;
}
}

if(qi!=0)
{
eat=0;
if(e==2)
return realeye;
else
return qi;
} //qi is not 0.
if(qi==0)// if any man is eat, make the value of pigroup[][] 0.
{
eat=1;
eaten[k]=1;
if(e==1)
{
for(i=1;i<=n;i++)
{
pigroup[mass[0][i]][mass[1][i]]=0;
beeat[mass[0][i]][mass[1][i]]=1;
}
}

}
return 0;
}
全部回答
  • 1楼网友:低血压的长颈鹿
  • 2021-01-13 13:49
你会c++
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息