用图搜索法:广度优先、深度优先和A*算法实现八数码问题 第8页

     printf("请输入开始状态:");

     r=0;

     while(r < NUM)

     {   a=getchar();

         if(a >= 0x30 && a < 0x39 && check_input(s1, a, r))

         {   s1[r++]=a - 0x30;

             printf("%c", a);

         }

     }

     printf("\n请输入结束状态:");

     r=0;

     while(r < NUM)

     {   a=getchar();

         if(a >= 0x30 && a < 0x39 && check_input(s2, a, r))

         {   s2[r++]=a - 0x30;

             printf("%c", a);

         }

     }

     printf("\n");

     if(check_possible(s1, s2))

     {   r=bfs_search(s1, s2);

         printf("\n");

         if(r >= 0)

         { printf("查找深度=%d,所有的方式=%ld\n", m_depth, r);

           output();

         }

         else if(r == -1)

         { printf("没有找到路径.\n");

         }

         else if(r == -2)

         {printf("这种状态变换没有路径到达.\n");

         }

         else

         {printf("不确定的错误.\n");

         }

     }

     else

     { printf("不允许这样移动!\n");

     }

return 0;

}

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一页

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