不知道如何解释这一点,所以标题几乎描述了这个问题。
Random 不会在循环的每个部分都重新初始化。它是一个类的静态成员,我总是从其他类调用它。
我没有使用自定义种子。
初始化代码为:
public static Random random = new Random();
for (int x = 0; x < 75; x++)
{
if (main.random.Next(11) == 1)
{
tiles[heightMap[x] - 1][x] = 4;
tiles[heightMap[x] - 2][x] = 4;
tiles[heightMap[x] - 3][x] = 4;
tiles[heightMap[x] - 4][x] = 4;
tiles[heightMap[x] - 5][x] = 4;
tiles[heightMap[x] - 5][x - 1] = 5;
tiles[heightMap[x] - 6][x - 1] = 5;
tiles[heightMap[x] - 6][x] = 5;
tiles[heightMap[x] - 5][x + 1] = 5;
tiles[heightMap[x] - 6][x + 1] = 5;
}
}
这(我知道这不是一个好方法 - 它是基本的和临时的)生成一棵树。
然而,我的地形通常看起来像这样,有许多聚集的树:
☁☁☁☁☁☁☁☁☁☁
任何人都可以深入了解为什么会这样吗?有比使用 System.Security.Cryptography.Random 类更好的选择吗?
我预计每棵树平均有 9 个间隙,但它更像是 7 棵树,然后是 3 棵树紧密地聚集在一起。