用图搜索法:广度优先、深度优先和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] 下一页

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有