- 博客(0)
- 资源 (1)
- 收藏
- 关注
八皇后(九宫算法)问题
void synchronize(int scb[],int gcp[],int tag)//tag=0,写棋子;tag=1,写棋盘
{
for(int i=0;i<=8;i++)
if(tag)
scb[gcp[i]]=i;
else
gcp[scb[i]]=i;
}
int valuew(int cb[],int tag)//不在位棋子数
{
int c=0;
for(int i=0;i<=8;i++)
if(cb[i]!=cbg[i])
if(cbg[i]!=0)
c++;
return c;
}
NodeLink *makenode(NodeLink *TEM,int depth,int tag)
{
NodeLink *temp=new NodeLink;
for(int i=0;i<=8;i++)
temp->cs.pos[i]=TEM->cs.pos[i];
switch(tag)
{
case 1:
{
temp->cs.pos[0]--;
temp->cs.pos[cbt[temp->cs.pos[0]]]++;
break;
}
case 2:
{
temp->cs.pos[0]++;
temp->cs.pos[cbt[temp->cs.pos[0]]]--;
break;
}
case 3:
{
temp->cs.pos[0]-=3;
temp->cs.pos[cbt[temp->cs.pos[0]]]+=3;
break;
}
case 4:
{
temp->cs.pos[0]+=3;
temp->cs.pos[cbt[temp->cs.pos[0]]]-=3;
break;
}
}
temp->cs.d=depth+1;
synchronize(cbt,temp->cs.pos,1);
temp->cs.f=temp->cs.d+valuew(cbt,1);
temp->cs.e=tag;
temp->parent=TEM;
return temp;
}
2010-12-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人