改进版迷宫
2018-08-24
以前曾经写过一个 JavaScript 版迷宫,生成迷宫的算法很简单,就是在一个空白迷宫中,让一个小人随机地行走,并记录下每个格子所通过的方向,直到地图上每个格子都到达过为止。
由这个算法生成的一个典型的迷宫如下:
最近重新玩这个迷宫游戏,总觉得有一些问题,简单来说就是岔路太少,即使有一些小岔路也经常能一眼看到头,于是经常很容易就能一次走到终点。仔细想一想,也不难理解,因为生成迷宫的方式是模拟一个小人随机行走,虽然这个小人会不断转弯,但很多时候他会走出一条很长的连续的道路。
找到了原因,改进也就简单了。我改进了一下生成算法,基本操作和原来一致,但不再是一个小人随机行走,而是每隔一段时间再随机地添加一个小人到地图中,这样便很容易产生比较长的岔路了。
一个典型的改进后的迷宫如下:
可以看到,新迷宫的岔路更多了,有几条岔路都比较长,并不能一眼看到终点,走这样的新迷宫,至少有一半的机率在第一个岔路就走错路。
当然,20*20 的地图还是稍小了一点,如果增大地图,对应的岔路也会更多,难度也会更大。
最后,放一下改进版迷宫的链接: https://oldj.net/static/maze2/ 。
分类:编程标签:迷宫JavaScript
发表评论:
电子邮件地址不会被公开。必填项已用 * 标注。
评论: