八皇后(九宫算法)问题

时间:2014-01-11 11:07:33
【文件属性】:

文件名称:八皇后(九宫算法)问题

文件大小:3KB

文件格式:TXT

更新时间:2014-01-11 11:07:33

C++

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; }


网友评论