【发布时间】:2018-07-10 10:20:30
【问题描述】:
我正在尝试生成 3 个介于 1 和 10 之间的数字。任何两个数字之间的差必须小于/等于 2。例如:2、6、9 可以,但 2、4、7 不行(因为 4 - 2 = 2)。
private int GetGoodNumber()
{
int lastIndex = 0;
int x = 3;
int randomNumber = 0;
for (int i = 0; i < 3; i++)
{
int interval = UnityEngine.Random.Range(2, 7);
do
{
randomNumber = interval + (UnityEngine.Random.Range(0, 10));
} while (randomNumber > 10 || x <= 2);
x = (lastIndex > randomNumber) ? lastIndex - randomNumber : randomNumber - lastIndex;
lastIndex = randomNumber;
Debug.Log(randomNumber);
}
return randomNumber;
}
不幸的是,我的方法不起作用,有谁知道问题所在。
【问题讨论】:
-
继续生成直到它符合您的规格?
-
总结一下:您想要一个随机的、有序的 1 到 10 之间的数字区间,并且它们应该至少相隔 3 步?
-
是的......不是这三个数字之间的差小于 2
-
但是你知道你不返回这些数字吗?你只返回最后一个,这是预期的行为吗?
-
2、8、4可以吗?