用图搜索法:广度优先、深度优先和A*算法实现八数码问题 第3页
long move_gen(EP_NODE *node, EP_MOVE *move)
{long pz; //0的位置
UINT64 t=0xf;
for(pz=NUM - 1; pz >= 0; pz--)
{if((node->v & t) == 0)
{ break; //找到0的位置
}
t<<=4;
}
switch(pz)
{case 0:
move[0].x=0;
move[0].y=1;
move[1].x=0;
move[1].y=3;
return 2;
case 1:
move[0].x=1;
move[0].y=0;
move[1].x=1;
move[1].y=2;
move[2].x=1;
move[2].y=4;
return 3;
case 2:
move[0].x=2;
move[0].y=1;
move[1].x=2;
move[1].y=5;
return 2;
case 3:
move[0].x=3;
move[0].y=0;
move[1].x=3;
move[1].y=6;
move[2].x=3;
move[2].y=4;
return 3;
case 4:
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页