我正在尝试生成0-49的随机数。我想在网格中绘制链接,只要随机数不是0.每次我得到一个0,然后是另外十个0(给或拿)。在我的研究中,他们说如果我不断创建我的Random的新实例,这将是问题,但我不这样做。我的代码如下:
//Class begins
namespace Mascape
{
public class Game1 : Game
{
GraphicsDeviceManager graphics;
SpriteBatch spriteBatch;
Wall[, ,] walls = new Wall[2, 15, 10];
int mapWidth=15;
int mapHeight=10;
Random rand = new Random(); //Outside of any methods or loops.
int mapFullness;
//以下是我的Initialize()方法
//i is horizontal vs. vertical link
//j is the x position of the link
//k is the y position of the link
mapFullness = 50;
for (int i = 0; i < 2; ++i)
{
for (int j = 0; j < mapWidth; ++j)
{
for (int k = 0; k < mapHeight; ++k)
{
if (!(rand.Next(50) == 0))
{
walls[i, j, k].active = true; //Links are drawn if active
}
}
}
}
我正在尝试绘制一个随机缺失链接的网格。目标是让它们展开,大约出现在50中。这是实际结果:
知道为什么缺乏随机性?如果您想了解更多信息,请告诉我。
答案 0 :(得分:0)
应该有更多这个。请参阅以下从您的代码复制的代码按预期生成随机。
Random rand = new Random();
int mapWidth = 5;
int mapHeight = 10;
for (int i = 0; i < 2; ++i)
{
for (int j = 0; j < mapWidth; ++j)
{
for (int k = 0; k < mapHeight; ++k)
{
Console.WriteLine(rand.Next(50));
}
}
}