2

所以让我现在更好地解释我的问题(请重新打开这个问题)。在考虑一种生成程序线来构建地形的方法时,我听说了马尔可夫链理论。

生成的主要内容是可以无限延伸的地图。起初,我使用基于 perlin 的程序地图构建了一个演示,该程序地图具有许多不同的地形特征。它甚至是等距的,更像是哨兵。事实证明,这太令人困惑,无法使用我想到的运动机制。我不得不将它简化为一个更简单的基于瓷砖的系统。它不仅更容易掌握和导航,而且看起来也好多了。

地图是使用马尔可夫链生成的。该算法被输入一个简短的人造地形序列。然后它继续生成一个模拟输入结构的任意大小的映射。

因此,示例视觉输出可能如下图所示

在此处输入图像描述

实际上,我经历了类似的事情,引文中描述了以这些随机行结尾的事情:

在此处输入图像描述

因此,我没有使用这条随机线,而是寻找一种从第一张图片中创建小峡谷的解决方案。我第一次读到马尔可夫链时,我觉得哇,以人造线作为输入,让算法继续进行,听起来很棒。

那么马尔可夫链理论实际上如何帮助创建这种地形呢?如果您认为有更好的方法可以做到这一点,请提出建议。

地图是使用马尔可夫链生成的。

...让我感到困惑,我认为他们实际上是一个马尔可夫链算法。

4

1 回答 1

2

我不确定你是否知道马尔可夫链是什么。马尔可夫链是由基于概率的状态转换定义的系统。下一个状态(根据定义)基于前一个状态。

马尔可夫链不是变换。它不是修改系统的算法,它只是描述系统。

要描述您的线系统,您需要查看数组中的各个索引并计算“跳跃”的概率。最后,你会得到类似这样的东西:

idx 1: 20% chance for a jump
idx 2: 0% chance for a jump
idx 3: 15% chance for a jump
idx 4: 55% chance for a jump
...

这对编程来说是微不足道的,但它并不能帮助您使线条笔直。为了使线条笔直,您甚至不需要马尔可夫链,只需遍历所有索引并使它们等于前一个索引。很难确切地看到您在这里尝试做什么。

于 2011-05-29T20:23:20.033 回答