华容道

您所在的位置:网站首页 华容道的原理 华容道

华容道

2023-08-10 16:24| 来源: 网络整理| 查看: 265

>>华容道 先来玩一玩吧

html版(鼠标点一点吧,发现bug截图发给作者)

flash版(鼠标点一点吧,发现bug截图发给作者)

flash游戏... >>原理

华容道有很多种开局方式,本文用的是最经典的是开局方式——横刀立马,也是最难的。0横无解,1横到5横,横的越多,越简单。如果横刀立马实在解不出来,又不想看教程,可以试试两横的开局,两横不会试试3横,然后4横,5横,5横要是再不会,自己面壁去吧。

这里不放解法教程了,百度一下,有很多,还有图解。81步解法。

简单说一下游戏的制作思路:

1、新建一个4*5的数组,对应图上的位置,1代表曹操占4个位置,2代表关羽占2个位置,张飞、赵云、马超、黄忠也是占2个位置,都用3表示,兵占一个位置用4表示,空余两个位置用0表示。

var map=[ [3,3,3,3,4], [1,1,2,4,0], [1,1,2,4,0], [3,3,3,3,4] ];

2、定义4种元件:曹操、关羽、赵云、兵。每种元件都有一个位置索引p=[i,j],占位a(如兵.a=[[0,0]],曹操.a=[[0,0],[1,0],[1,1],[0,1]]等)。

3、根据数组的值创建并摆放元件。这里注意:每创建一个元素(item)的同时除了把数组中(i,j)的值设置为元素(item)的引用外,根据元素(item)的占位a的值,把(i,j)周围相应的位置也设置为元素(item)的引用。设置完是这样的:

[张飞,张飞,赵云,赵云,兵1],

[曹操,曹操,关羽,兵2,0],

[曹操,曹操,关羽,兵3,0],

[马超,马超,黄忠,黄忠,兵4],

上面的两个“张飞”指向同一个元素。

4、侦听鼠标点击,根据点击位置计算对应的数组中的索引坐标(i,j),如果(i,j)处是元素,则选中元素;如果(i,j)处是0,并且之前已经选中了元素,判断选中的元素是否能够移动到(i,j);具体判断方式直接看代码吧(实在不知道怎么表达了)。>

5、判断过关。判断过关比较简单,只要判断曹操的位置是否到出口位置即可。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3