【关于地图生成的研究笔记】简单路径 / Simple Route

规则:确定起始点后,随机选一个方向进行访问,然后重复以上循环。我加了个条件,不会出现反方向访问的情况,打个比方,如果它前一步是往右走,那下一步就不能往左走了。

允许重复访问相同的Grid。没有停止生成的条件。

如图(没有双缓冲,屏幕反复刷新,闪屏严重,因此我缩小了尺寸,加上了一个Sleep(),勉强截到一张)

决定还是循环一定次数后再进行渲染,不过不知道是哪里写错了,还是随机数生成器有问题,这次它给了我一个可爱的圈:

我觉得问题应该出在这儿,由于CPU实在太快导致返回的非精确时间都是相同的值:

所以我修改了一下种子,令我惊喜的是,这样简单的一个算法返回了只要修改种子就能返回许多神奇的图案:

然后,我在UP和DOWN上加上了visited检测,但是没有在LEFT和RIGHT上加:

结果更加有趣了:

代码已经上传至github,你可以修改里面的参数编译,然后查看效果,注意每个循环后面的Sleep()的参数不要超过3,因为每次加1你可能都要因此等待二三十秒才能出结果。

还有,要想生成不同的图案,你必须修改种子然后重新编译,抱歉,可能会花费额外的3-6秒钟,但是我目前还没有想到解决方案使随机数生成器不完全依赖时间。

(感想:突然感觉有机生命体的产生没这么偶然了。。对了,说到有机,今天老师开始上有机化学了!看药品说明书的时候终于看得懂键线式了)

祝我自己生日快乐吧,今天是我存在于这个世界上的第16年!

猜你喜欢

转载自www.cnblogs.com/lostmatch/p/10424020.html