我想知道如何选择最多六个之间的任意随机数的逻辑 0到8,其中如果(0,1)或(1,2)或(0,2)被选中则不再选择0到2中的剩余一个数字,如果(3,则为3到5系列) 5)或(3,4)或(4,5)被选中,则不应选择剩余的一个数字。
因此,例如在0到8系列中,六个数字可以是(0,1,3,5,6,8)或(1,2,4,5,7,8)或(0,1,3)或(4,6)等
这些点是一种产生点,所以如果所有0-2点都被填充,那么路径将被阻止以便玩家继续前进。
这是我做的,它有点工作,但我认为它可以改善灵活性和性能,
public static int[] getPointsToSpawn(int howManyToSpawn, int tillWhereToSpawn) {
int[] howMany = new int[howManyToSpawn];
List<int> randomCOllected = new List<int>();
for (int i = 0; i < howManyToSpawn; i++) {
int randomPoint = generateUniqueRandomNumber(0, tillWhereToSpawn, randomCOllected);
randomCOllected.Add(randomPoint);
if (randomCOllected.Contains(0) && randomCOllected.Contains(1) ||
randomCOllected.Contains(0) && randomCOllected.Contains(2)
|| randomCOllected.Contains(1) && randomCOllected.Contains(2)
) {
randomCOllected.Add(0);
randomCOllected.Add(1);
randomCOllected.Add(2);
} else if (randomCOllected.Contains(3) && randomCOllected.Contains(4) ||
randomCOllected.Contains(3) && randomCOllected.Contains(5)
|| randomCOllected.Contains(4) && randomCOllected.Contains(5)
) {
randomCOllected.Add(3);
randomCOllected.Add(4);
randomCOllected.Add(5);
} else if (randomCOllected.Contains(6) && randomCOllected.Contains(7) ||
randomCOllected.Contains(7) && randomCOllected.Contains(8)
|| randomCOllected.Contains(6) && randomCOllected.Contains(8)
) {
randomCOllected.Add(6);
randomCOllected.Add(7);
randomCOllected.Add(8);
}
howMany[i] = randomPoint;
}
return howMany;
}
基本上我不希望在0到2或3到5或6到8范围之间生成超过2个数字。
答案 0 :(得分:0)
非常简单。你需要三个链接:
您可以查看此帖子以查看代码示例: How do I generate a random int number in C#?