华容道

logo

访问人数

00000

20:20

2014-11-30


>>华容道

先来玩一玩吧

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、判断过关。判断过关比较简单,只要判断曹操的位置是否到出口位置即可。


>>源码下载

温馨提示:本站flash文件由flash cs6创建,需要cs5.5以上版本方能打开,如果您使用的版本较低,请自行下载高版本或联系作者

华容道js源码下载(0)

华容道flash源码下载(0)

华容道安卓版下载(0)



回顶部