华容道游戏简要描述
在一个5行4列的方格区域中,摆放曹操(2*2),五虎将(1*2或2*1),蜀兵(1*1)共占18个方格,其中剩余2个方格用于移动板块,玩家需要通过移动其中板块将曹操移动到出口,并且最好用最少步数。
游戏截图展示
这是我用html+css+js编写的简单华容道游戏,其中的求解就是用C语言实现的,游戏资源我已经上传到CSDN上。
解决思路
还是老方法,5行4列的二维数组存储当前的局面,不过跟以前博文所写稍有不同,请耐心往下看。
板块的能否移动有个共性,那就是它移动到的目的地必须有足够的空处,整个游戏局面中就10个板块,每个都有高度,宽度,和所在的位置,这样我们可以抽象出所有板块类型Block,其定义如下
//板块结构
typedef struct block
{
int x,y; //板块所在位置(0,0)表示第一行第一列
int w,h; //width宽度,height高度,值非1即2
}Block; //别名
那么整个游戏我们可以用板块数组来刻画,
Block bs[10]; //板块数组
每次某个板块移动,就对该板块的坐标进行运算,当曹操板块(也就是w=2&&h==2的板块的坐标是(3,1)时,曹操板块就在出口处了,表示游戏得到了一个解决方案,此时退出程序并打印移动方案。)
实现自动求解我们需要让每个板块自行移动,让每个板块移动很简单,只需要一个循环语句便可实现,但是它要怎么移动,能不能移动,这需要进行一次判断才行。对于曹操板块,它只能有上下左右四种移动方式,我们判断其能否往某个方向移动,需要知道曹操板块的坐标和此时的局面(也就是它将要移动的地方是不是空出来的)。这需要二维数组map[5][4]来对局面进行描述。关于局面我们可以由板块数组得到,代码如下:
//板块分四种,正方形大块,正方形小块,长方形横放,长方形竖放
#define DA 1
#define XIAO 2
#define HENG 3
#define SHU 4
#define KONG 0
void getMap(Block bs[],int map[][4])
{
int i,j;
for(i=0;i<5;i++)
{
for(j=0;j<4;j++)
{
map[i][j]=KONG;
}
}
for(i=0;i<10;i++)
{
//大正方形
if(bs[i].w==2&&bs[i].h==2)
{
map[i][j]=DA;map[i][j+1]=DA;map[i+1][j]=DA;map[i+1][j+1]=DA;
}
//横长方形
else if(bs[i].w==2)
{
map[i][j]=HENG;map[i][j+1]=HENG;
}
//竖长方形
else if(bs[i].h==2)
{
map[i][j]=SHU;map[i+1][j]=SHU;
}
//小正方形
else
{
map[i][j]=XIAO;
}
}
}
得到局面后,我们便可以对板块能否向某方向移动进行判断,举个例子
#define UP 1
#define DOWN 2
#define LEFT 3
#define RIGHT 4
#define UPUP 5
//省略其他方向宏定义,只说明算法
int canTurnToDirect(Block b,int direct,int map[][4])
{
//方向分类
switch(direct)
{
//能否上移
case UP:
//已经在局面最上端,再移动就出去了
if(b.x==0)
{
return 0;
}
//先根据长度和高度判断类型
if(b.w==1)
{
//需要上面一格是空白处
return map[b.x-1][b.y]==KONG;
}
else
{
//需要上面两格是空白处
return map[b.x-1][b.y]==KONG&&map[b.x-1][b.y+1]==KONG;
}
break;
//省略
}
}
现在我们可以判断是否能朝某方向移动了,那么刻画一下其移动
//由于需要改变值,所以传递指针做参数
void turnToDirect(Block *b,int direct)
{
switch(direct)
{
case UP:
b->x--;
break;
//省略
}
}
判断后根据可行方向移动,每次移动后(精确地说是大正方形移动后)都有可能得到了解法,那么我们需要进行一次判断,用板块数组判断或者用局面数组判断都可以,这里介绍局面数组判断
int isOver(int map[][4])
{
//当可以确定大正方形在出口前时为真
return map[3][1]==DA&&map[4][2]==DA;
}
现在可以得到一个基本求解框架了
1.声明板块数组
2.根据板块数组得到一个局面
3.遍历板块数组,每个板块在该局面下能否朝某方向移动,
if(可以)
{
移动该板块
获取一个新局面
对新局面进行判断,曹操是否已经走到出口
if(走到出口)
{
打印移动步骤
退出程序
}
将该板块移动回原位,方便进行下一个移动方向判断
该新局面是否已经在前面某方块移动后产生过
if(未产生过)
{
保存起来,用于给后来的新局面去重
}
}
这里强调一下的就是去重,因为根据板块移动的重复性不做要求时,有时候可能移来移去都是一个板块,导致最后程序运行内存耗尽而崩溃!(以上面给出的横刀立马布局为例,不去重时可能四兵无限的左右移动,这就让计算机很难受了)
那么我们怎么去重和保存出现过的局面呢?这里就需要有一定的数据结构基础,需要对单链表和队列有一定的认识(这个就不在这里多做赘述,请自行补习)。我们设计一个方案结构,代码如下
//方案结构
typedef struct solution
{
int map[5][4]; //局面
struct solution *pre; //上一个方案
struct solution *next; //下一个方案
}Solution; //别名
每次移动后,将该新局面保存到方案的局面属性中,再将该方案加入队列,自定义队列结构如下
//队列结构
typedef struct queue
{
struct solution *first; //首方案
struct solution *last; //末方案
}Queue;
加入前需要对队列中是否存在该方案同局面进行查重判断,不存在时就添加到队列末端。重复则将其忽略,并将前面申请的空间释放掉,不然可能运行内存不足。
现在我们的算法可以说比较完善了。
Block bs[10];
初始化bs
Solution *s;
初始化s
Queue *q;
初始化q
从bs获取初始局面赋给s的局面数组
s进入q队列中
//now为初始方案,后面为当前方案
Solution *now=q->first;
while(now!=NULL)
{
从now中获取bs(这里的代码上面没有讲,读者自行思考从板块到局面的逆过程)
for(i=0;i<10;i++)
{
板块i能否向下移
if(可以下移)
{
同上,不多做赘述
}
}
//下一个方案
now=now->next;
}
所有可能出现的移动局面都遍历完成后仍然不能得到解答,说明该关卡无解。
打印结论
结束程序
具体代码我已上传到CSDN。由于没有使用哈希算法(本人不会),所以运行时间较长,大概一到两分钟左右。
横刀立马布局的运行结果
读取关卡开始
关卡:横刀立马一
++============++
++ 曹操 (1,2) ++
++ 横将 (3,2) ++
++ 竖将 (1,1) ++
++ 竖将 (3,1) ++
++ 竖将 (3,4) ++
++ 竖将 (1,4) ++
++ 蜀兵 (4,2) ++
++ 蜀兵 (4,3) ++
++ 蜀兵 (5,1) ++
++ 蜀兵 (5,4) ++
++============++
读取关卡结束
初始局面
********************
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====竖横横竖=====*
*=====竖兵兵竖=====*
*=====兵 兵=====*
********************
开始搜索解决方案,由于使用基本算法可能需要2到3分钟运行时间,请耐心等候!
推荐方案开始
********************
* 第1 步 *
* (4,2)--->> 下 *
********************
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====竖横横竖=====*
*=====竖兵兵竖=====*
*=====兵 兵=====*
********************
********************
* 第2 步 *
* (5,4)--->> 左 *
********************
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====竖横横竖=====*
*=====竖 兵竖=====*
*=====兵兵 兵=====*
********************
********************
* 第3 步 *
* (3,4)--->> 下 *
********************
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====竖横横竖=====*
*=====竖 兵竖=====*
*=====兵兵兵 =====*
********************
********************
* 第4 步 *
* (3,2)--->> 右 *
********************
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====竖横横 =====*
*=====竖 兵竖=====*
*=====兵兵兵竖=====*
********************
********************
* 第5 步 *
* (3,1)--->> 右 *
********************
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====竖 横横=====*
*=====竖 兵竖=====*
*=====兵兵兵竖=====*
********************
********************
* 第6 步 *
* (5,1)--->> 上 *
********************
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*===== 竖横横=====*
*===== 竖兵竖=====*
*=====兵兵兵竖=====*
********************
********************
* 第7 步 *
* (5,2)--->> 左 *
********************
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*===== 竖横横=====*
*=====兵竖兵竖=====*
*===== 兵兵竖=====*
********************
********************
* 第8 步 *
* (3,2)--->> 下 *
********************
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*===== 竖横横=====*
*=====兵竖兵竖=====*
*=====兵 兵竖=====*
********************
********************
* 第9 步 *
* (3,3)--->>左左 *
********************
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*===== 横横=====*
*=====兵竖兵竖=====*
*=====兵竖兵竖=====*
********************
********************
* 第10 步 *
* (4,3)--->>上右 *
********************
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====横横 =====*
*=====兵竖兵竖=====*
*=====兵竖兵竖=====*
********************
********************
* 第11 步 *
* (5,3)--->>上上 *
********************
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====横横 兵=====*
*=====兵竖 竖=====*
*=====兵竖兵竖=====*
********************
********************
* 第12 步 *
* (4,2)--->> 右 *
********************
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====横横兵兵=====*
*=====兵竖 竖=====*
*=====兵竖 竖=====*
********************
********************
* 第13 步 *
* (4,1)--->>下右 *
********************
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====横横兵兵=====*
*=====兵 竖竖=====*
*=====兵 竖竖=====*
********************
********************
* 第14 步 *
* (3,1)--->> 下 *
********************
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====横横兵兵=====*
*===== 竖竖=====*
*=====兵兵竖竖=====*
********************
********************
* 第15 步 *
* (3,3)--->>左左 *
********************
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*===== 兵兵=====*
*=====横横竖竖=====*
*=====兵兵竖竖=====*
********************
********************
* 第16 步 *
* (3,4)--->>左左 *
********************
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====兵 兵=====*
*=====横横竖竖=====*
*=====兵兵竖竖=====*
********************
********************
* 第17 步 *
* (4,3)--->> 上 *
********************
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====兵兵 =====*
*=====横横竖竖=====*
*=====兵兵竖竖=====*
********************
********************
* 第18 步 *
* (4,4)--->> 上 *
********************
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====兵兵竖 =====*
*=====横横竖竖=====*
*=====兵兵 竖=====*
********************
********************
* 第19 步 *
* (5,2)--->>右右 *
********************
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====兵兵竖竖=====*
*=====横横竖竖=====*
*=====兵兵 =====*
********************
********************
* 第20 步 *
* (5,1)--->>右右 *
********************
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====兵兵竖竖=====*
*=====横横竖竖=====*
*=====兵 兵=====*
********************
********************
* 第21 步 *
* (4,1)--->> 下 *
********************
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====兵兵竖竖=====*
*=====横横竖竖=====*
*===== 兵兵=====*
********************
********************
* 第22 步 *
* (3,2)--->>下左 *
********************
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====兵兵竖竖=====*
*===== 竖竖=====*
*=====横横兵兵=====*
********************
********************
* 第23 步 *
* (3,3)--->> 左 *
********************
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====兵 竖竖=====*
*=====兵 竖竖=====*
*=====横横兵兵=====*
********************
********************
* 第24 步 *
* (3,4)--->> 左 *
********************
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====兵竖 竖=====*
*=====兵竖 竖=====*
*=====横横兵兵=====*
********************
********************
* 第25 步 *
* (1,4)--->>下下 *
********************
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====兵竖竖 =====*
*=====兵竖竖 =====*
*=====横横兵兵=====*
********************
********************
* 第26 步 *
* (1,2)--->> 右 *
********************
*=====竖曹曹 =====*
*=====竖曹曹 =====*
*=====兵竖竖竖=====*
*=====兵竖竖竖=====*
*=====横横兵兵=====*
********************
********************
* 第27 步 *
* (1,1)--->> 右 *
********************
*=====竖 曹曹=====*
*=====竖 曹曹=====*
*=====兵竖竖竖=====*
*=====兵竖竖竖=====*
*=====横横兵兵=====*
********************
********************
* 第28 步 *
* (3,1)--->>上上 *
********************
*===== 竖曹曹=====*
*===== 竖曹曹=====*
*=====兵竖竖竖=====*
*=====兵竖竖竖=====*
*=====横横兵兵=====*
********************
********************
* 第29 步 *
* (4,1)--->>上上 *
********************
*=====兵竖曹曹=====*
*===== 竖曹曹=====*
*===== 竖竖竖=====*
*=====兵竖竖竖=====*
*=====横横兵兵=====*
********************
********************
* 第30 步 *
* (3,2)--->> 左 *
********************
*=====兵竖曹曹=====*
*=====兵竖曹曹=====*
*===== 竖竖竖=====*
*===== 竖竖竖=====*
*=====横横兵兵=====*
********************
********************
* 第31 步 *
* (1,2)--->>下下 *
********************
*=====兵竖曹曹=====*
*=====兵竖曹曹=====*
*=====竖 竖竖=====*
*=====竖 竖竖=====*
*=====横横兵兵=====*
********************
********************
* 第32 步 *
* (1,3)--->> 左 *
********************
*=====兵 曹曹=====*
*=====兵 曹曹=====*
*=====竖竖竖竖=====*
*=====竖竖竖竖=====*
*=====横横兵兵=====*
********************
********************
* 第33 步 *
* (3,4)--->>上上 *
********************
*=====兵曹曹 =====*
*=====兵曹曹 =====*
*=====竖竖竖竖=====*
*=====竖竖竖竖=====*
*=====横横兵兵=====*
********************
********************
* 第34 步 *
* (3,3)--->> 右 *
********************
*=====兵曹曹竖=====*
*=====兵曹曹竖=====*
*=====竖竖竖 =====*
*=====竖竖竖 =====*
*=====横横兵兵=====*
********************
********************
* 第35 步 *
* (5,3)--->>上上 *
********************
*=====兵曹曹竖=====*
*=====兵曹曹竖=====*
*=====竖竖 竖=====*
*=====竖竖 竖=====*
*=====横横兵兵=====*
********************
********************
* 第36 步 *
* (5,4)--->>上左 *
********************
*=====兵曹曹竖=====*
*=====兵曹曹竖=====*
*=====竖竖兵竖=====*
*=====竖竖 竖=====*
*=====横横 兵=====*
********************
********************
* 第37 步 *
* (5,1)--->>右右 *
********************
*=====兵曹曹竖=====*
*=====兵曹曹竖=====*
*=====竖竖兵竖=====*
*=====竖竖兵竖=====*
*=====横横 =====*
********************
********************
* 第38 步 *
* (3,1)--->> 下 *
********************
*=====兵曹曹竖=====*
*=====兵曹曹竖=====*
*=====竖竖兵竖=====*
*=====竖竖兵竖=====*
*===== 横横=====*
********************
********************
* 第39 步 *
* (3,2)--->> 下 *
********************
*=====兵曹曹竖=====*
*=====兵曹曹竖=====*
*===== 竖兵竖=====*
*=====竖竖兵竖=====*
*=====竖 横横=====*
********************
********************
* 第40 步 *
* (3,3)--->>左左 *
********************
*=====兵曹曹竖=====*
*=====兵曹曹竖=====*
*===== 兵竖=====*
*=====竖竖兵竖=====*
*=====竖竖横横=====*
********************
********************
* 第41 步 *
* (1,2)--->> 下 *
********************
*=====兵曹曹竖=====*
*=====兵曹曹竖=====*
*=====兵 竖=====*
*=====竖竖兵竖=====*
*=====竖竖横横=====*
********************
********************
* 第42 步 *
* (1,1)--->>右右 *
********************
*=====兵 竖=====*
*=====兵曹曹竖=====*
*=====兵曹曹竖=====*
*=====竖竖兵竖=====*
*=====竖竖横横=====*
********************
********************
* 第43 步 *
* (2,1)--->>上右 *
********************
*===== 兵竖=====*
*=====兵曹曹竖=====*
*=====兵曹曹竖=====*
*=====竖竖兵竖=====*
*=====竖竖横横=====*
********************
********************
* 第44 步 *
* (3,1)--->>上上 *
********************
*===== 兵兵竖=====*
*===== 曹曹竖=====*
*=====兵曹曹竖=====*
*=====竖竖兵竖=====*
*=====竖竖横横=====*
********************
********************
* 第45 步 *
* (4,1)--->>上上 *
********************
*=====兵兵兵竖=====*
*===== 曹曹竖=====*
*===== 曹曹竖=====*
*=====竖竖兵竖=====*
*=====竖竖横横=====*
********************
********************
* 第46 步 *
* (4,2)--->> 左 *
********************
*=====兵兵兵竖=====*
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*===== 竖兵竖=====*
*===== 竖横横=====*
********************
********************
* 第47 步 *
* (4,3)--->>下左 *
********************
*=====兵兵兵竖=====*
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====竖 兵竖=====*
*=====竖 横横=====*
********************
********************
* 第48 步 *
* (2,2)--->> 下 *
********************
*=====兵兵兵竖=====*
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====竖 竖=====*
*=====竖兵横横=====*
********************
********************
* 第49 步 *
* (1,3)--->>下左 *
********************
*=====兵兵兵竖=====*
*=====竖 竖=====*
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====竖兵横横=====*
********************
********************
* 第50 步 *
* (1,4)--->> 左 *
********************
*=====兵兵 竖=====*
*=====竖兵 竖=====*
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====竖兵横横=====*
********************
********************
* 第51 步 *
* (3,4)--->>上上 *
********************
*=====兵兵竖 =====*
*=====竖兵竖 =====*
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====竖兵横横=====*
********************
********************
* 第52 步 *
* (3,2)--->> 右 *
********************
*=====兵兵竖竖=====*
*=====竖兵竖竖=====*
*=====竖曹曹 =====*
*=====竖曹曹 =====*
*=====竖兵横横=====*
********************
********************
* 第53 步 *
* (2,2)--->> 下 *
********************
*=====兵兵竖竖=====*
*=====竖兵竖竖=====*
*=====竖 曹曹=====*
*=====竖 曹曹=====*
*=====竖兵横横=====*
********************
********************
* 第54 步 *
* (1,2)--->> 下 *
********************
*=====兵兵竖竖=====*
*=====竖 竖竖=====*
*=====竖兵曹曹=====*
*=====竖 曹曹=====*
*=====竖兵横横=====*
********************
********************
* 第55 步 *
* (1,1)--->> 右 *
********************
*=====兵 竖竖=====*
*=====竖兵竖竖=====*
*=====竖兵曹曹=====*
*=====竖 曹曹=====*
*=====竖兵横横=====*
********************
********************
* 第56 步 *
* (2,1)--->> 上 *
********************
*===== 兵竖竖=====*
*=====竖兵竖竖=====*
*=====竖兵曹曹=====*
*=====竖 曹曹=====*
*=====竖兵横横=====*
********************
********************
* 第57 步 *
* (4,1)--->> 上 *
********************
*=====竖兵竖竖=====*
*=====竖兵竖竖=====*
*===== 兵曹曹=====*
*=====竖 曹曹=====*
*=====竖兵横横=====*
********************
********************
* 第58 步 *
* (5,2)--->> 左 *
********************
*=====竖兵竖竖=====*
*=====竖兵竖竖=====*
*=====竖兵曹曹=====*
*=====竖 曹曹=====*
*===== 兵横横=====*
********************
********************
* 第59 步 *
* (3,2)--->>下下 *
********************
*=====竖兵竖竖=====*
*=====竖兵竖竖=====*
*=====竖兵曹曹=====*
*=====竖 曹曹=====*
*=====兵 横横=====*
********************
********************
* 第60 步 *
* (3,3)--->> 左 *
********************
*=====竖兵竖竖=====*
*=====竖兵竖竖=====*
*=====竖 曹曹=====*
*=====竖 曹曹=====*
*=====兵兵横横=====*
********************
********************
* 第61 步 *
* (1,4)--->>下下 *
********************
*=====竖兵竖竖=====*
*=====竖兵竖竖=====*
*=====竖曹曹 =====*
*=====竖曹曹 =====*
*=====兵兵横横=====*
********************
********************
* 第62 步 *
* (1,3)--->> 右 *
********************
*=====竖兵竖 =====*
*=====竖兵竖 =====*
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====兵兵横横=====*
********************
********************
* 第63 步 *
* (1,2)--->> 右 *
********************
*=====竖兵 竖=====*
*=====竖兵 竖=====*
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====兵兵横横=====*
********************
********************
* 第64 步 *
* (2,2)--->> 右 *
********************
*=====竖 兵竖=====*
*=====竖兵 竖=====*
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====兵兵横横=====*
********************
********************
* 第65 步 *
* (1,1)--->> 右 *
********************
*=====竖 兵竖=====*
*=====竖 兵竖=====*
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====兵兵横横=====*
********************
********************
* 第66 步 *
* (3,1)--->>上上 *
********************
*===== 竖兵竖=====*
*===== 竖兵竖=====*
*=====竖曹曹竖=====*
*=====竖曹曹竖=====*
*=====兵兵横横=====*
********************
********************
* 第67 步 *
* (3,2)--->> 左 *
********************
*=====竖竖兵竖=====*
*=====竖竖兵竖=====*
*===== 曹曹竖=====*
*===== 曹曹竖=====*
*=====兵兵横横=====*
********************
********************
* 第68 步 *
* (2,3)--->>下下 *
********************
*=====竖竖兵竖=====*
*=====竖竖兵竖=====*
*=====曹曹 竖=====*
*=====曹曹 竖=====*
*=====兵兵横横=====*
********************
********************
* 第69 步 *
* (1,3)--->>下下 *
********************
*=====竖竖兵竖=====*
*=====竖竖 竖=====*
*=====曹曹 竖=====*
*=====曹曹兵竖=====*
*=====兵兵横横=====*
********************
********************
* 第70 步 *
* (1,4)--->> 左 *
********************
*=====竖竖 竖=====*
*=====竖竖 竖=====*
*=====曹曹兵竖=====*
*=====曹曹兵竖=====*
*=====兵兵横横=====*
********************
********************
* 第71 步 *
* (3,4)--->>上上 *
********************
*=====竖竖竖 =====*
*=====竖竖竖 =====*
*=====曹曹兵竖=====*
*=====曹曹兵竖=====*
*=====兵兵横横=====*
********************
********************
* 第72 步 *
* (4,3)--->>上右 *
********************
*=====竖竖竖竖=====*
*=====竖竖竖竖=====*
*=====曹曹兵 =====*
*=====曹曹兵 =====*
*=====兵兵横横=====*
********************
********************
* 第73 步 *
* (5,3)--->> 上 *
********************
*=====竖竖竖竖=====*
*=====竖竖竖竖=====*
*=====曹曹兵兵=====*
*=====曹曹 =====*
*=====兵兵横横=====*
********************
********************
* 第74 步 *
* (5,2)--->>右右 *
********************
*=====竖竖竖竖=====*
*=====竖竖竖竖=====*
*=====曹曹兵兵=====*
*=====曹曹横横=====*
*=====兵兵 =====*
********************
********************
* 第75 步 *
* (5,1)--->>右右 *
********************
*=====竖竖竖竖=====*
*=====竖竖竖竖=====*
*=====曹曹兵兵=====*
*=====曹曹横横=====*
*=====兵 兵=====*
********************
********************
* 第76 步 *
* (3,1)--->> 下 *
********************
*=====竖竖竖竖=====*
*=====竖竖竖竖=====*
*=====曹曹兵兵=====*
*=====曹曹横横=====*
*===== 兵兵=====*
********************
********************
* 第77 步 *
* (3,3)--->>左左 *
********************
*=====竖竖竖竖=====*
*=====竖竖竖竖=====*
*===== 兵兵=====*
*=====曹曹横横=====*
*=====曹曹兵兵=====*
********************
********************
* 第78 步 *
* (3,4)--->>左左 *
********************
*=====竖竖竖竖=====*
*=====竖竖竖竖=====*
*=====兵 兵=====*
*=====曹曹横横=====*
*=====曹曹兵兵=====*
********************
********************
* 第79 步 *
* (4,3)--->> 上 *
********************
*=====竖竖竖竖=====*
*=====竖竖竖竖=====*
*=====兵兵 =====*
*=====曹曹横横=====*
*=====曹曹兵兵=====*
********************
********************
* 第80 步 *
* (5,3)--->>上右 *
********************
*=====竖竖竖竖=====*
*=====竖竖竖竖=====*
*=====兵兵横横=====*
*=====曹曹 =====*
*=====曹曹兵兵=====*
********************
********************
* 第81 步 *
* (4,1)--->> 右 *
********************
*=====竖竖竖竖=====*
*=====竖竖竖竖=====*
*=====兵兵横横=====*
*=====曹曹 兵=====*
*=====曹曹 兵=====*
********************
推荐方案结束
程序用时35.150000s