可能重复:
随机数生成器仅生成一个随机数
前段时间我对这个有点困惑。我有以下代码:
public blockType generateRandomBlock()
{
Random random = new Random();
int makeBlockOfType = random.Next(0, 100);
blockType t = blockType.normal;
if (makeBlockOfType <= 80 && makeBlockOfType >= 60)
{
t = blockType.blue;
}
else if (makeBlockOfType > 80 && makeBlockOfType <= 95)
{
t = blockType.orange;
}
else if (makeBlockOfType > 95 && makeBlockOfType <= 100)
{
t = blockType.green;
}
return t;
}
相当简单,它enum
根据随机生成的数字(基于系统时间)返回一个值。不幸的是,出于某种奇怪的原因,我的所有方块都要么是一种颜色,要么是另一种颜色,即使这对放入游戏中的每一个方块都运行。但是,当我使用调试器逐步执行此操作并在运行后查看结果时,我看到块现在根据提供的机会是多色的。我有点困惑为什么会这样。
为此,我使用 MonoGame,它使用 Mono 编译器而不是 Microsoft 编译器。这可能是问题吗?我试图将此代码内联到调用它的构造函数中,但我得到了相同的结果(我猜编译器无论如何都会内联代码)。
我试图单独重新启动 Visual Studio,而不是让运行进行构建;没有变化。
非常感谢任何建议和帮助!