【发布时间】:2017-10-09 01:46:58
【问题描述】:
1.这就是我到目前为止所得到的
2.它应该在启动时随机化按钮上的数字。但它仍然会产生重复(而且我不想要重复)。
我为此使用 Visual Studio 2012 C#
-
只有在我启动程序后才应该这样做。所以它是一次性随机化
Random rand = new Random(); int RandomOne = rand.Next(0, 10); int RandomTwo = rand.Next(0, 10); int RandomThree = rand.Next(0, 10); int RandomFour = rand.Next(0, 10); int RandomFive = rand.Next(0, 10); int RandomSix = rand.Next(0, 10); int RandomSeven = rand.Next(0, 10); int RandomEight = rand.Next(0, 10); int RandomNine = rand.Next(0, 10); int RandomZero = rand.Next(0, 10); btnOneNgra.Text = Convert.ToString(RandomOne); if ((RandomTwo == RandomOne) || (RandomTwo == RandomNine) || (RandomTwo == RandomThree) || (RandomTwo == RandomFour) || (RandomTwo == RandomFive) || (RandomTwo == RandomSix) || (RandomTwo == RandomSeven) || (RandomTwo == RandomEight) || (RandomTwo == RandomZero)) { RandomTwo = rand.Next(0, 10); } else { btnTwoNgra.Text = Convert.ToString(RandomTwo); } if ((RandomThree == RandomOne) || (RandomThree == RandomTwo) || (RandomThree == RandomNine) || (RandomThree == RandomFour) || (RandomThree == RandomFive) || (RandomThree == RandomSix) || (RandomThree == RandomSeven) || (RandomThree == RandomEight) || (RandomThree == RandomZero)) { RandomThree = rand.Next(0, 10); } else { btnThreeNgra.Text = Convert.ToString(RandomThree); } if ((RandomFour == RandomOne) || (RandomFour == RandomTwo) || (RandomFour == RandomThree) || (RandomFour == RandomNine) || (RandomFour == RandomFive) || (RandomFour == RandomSix) || (RandomFour == RandomSeven) || (RandomFour == RandomEight) || (RandomFour == RandomZero)) { RandomFour = rand.Next(0, 10); } else { btnFourNgra.Text = Convert.ToString(RandomFour); } if ((RandomFive == RandomOne) || (RandomFive == RandomTwo) || (RandomFive == RandomThree) || (RandomFive == RandomFour) || (RandomFive == RandomNine) || (RandomFive == RandomSix) || (RandomFive == RandomSeven) || (RandomFive == RandomEight) || (RandomFive == RandomZero)) { RandomFive = rand.Next(0, 10); } else { btnFiveNgra.Text = Convert.ToString(RandomFive); } if ((RandomSix == RandomOne) || (RandomSix == RandomTwo) || (RandomSix == RandomThree) || (RandomSix == RandomFour) || (RandomSix == RandomFive) || (RandomSix == RandomNine) || (RandomSix == RandomSeven) || (RandomSix == RandomEight) || (RandomSix == RandomZero)) { RandomSix = rand.Next(0, 10); } else { btnSixNgra.Text = Convert.ToString(RandomSix); } if ((RandomSeven == RandomOne) || (RandomSeven == RandomTwo) || (RandomSeven == RandomThree) || (RandomSeven == RandomFour) || (RandomSeven == RandomFive) || (RandomSeven == RandomSix) || (RandomSeven == RandomNine) || (RandomSeven == RandomEight) || (RandomSeven == RandomZero)) { RandomSeven = rand.Next(0, 10); } else { btnSevenNgra.Text = Convert.ToString(RandomSeven); } if ((RandomEight == RandomOne) || (RandomEight == RandomTwo) || (RandomEight == RandomThree) || (RandomEight == RandomFour) || (RandomEight == RandomFive) || (RandomEight == RandomSix) || (RandomEight == RandomSeven) || (RandomEight == RandomNine) || (RandomEight == RandomZero)) { RandomEight = rand.Next(0, 10); } else { btnEightNgra.Text = Convert.ToString(RandomEight); } if ((RandomNine == RandomOne) || (RandomNine == RandomTwo) || (RandomNine == RandomThree) || (RandomNine == RandomFour) || (RandomNine == RandomFive) || (RandomNine == RandomSix) || (RandomNine == RandomSeven) || (RandomNine == RandomEight) || (RandomNine == RandomZero)) { RandomNine = rand.Next(0, 10); } else { btnNineNgra.Text = Convert.ToString(RandomNine); } if ((RandomZero == RandomOne) || (RandomZero == RandomTwo) || (RandomZero == RandomThree) || (RandomZero == RandomFour) || (RandomZero == RandomFive) || (RandomZero == RandomSix) || (RandomZero == RandomSeven) || (RandomZero == RandomEight) || (RandomZero == RandomNine)) { RandomZero = rand.Next(0, 10); } else { btnZeroNgra.Text = Convert.ToString(RandomZero); }
【问题讨论】:
-
一种解决方案可能是将数字(0-9)添加到列表中,随机播放并选择一个随机索引,删除索引处的元素。重复。编辑:也许选择下一个索引 - 不是洗牌后的随机索引。
-
您需要在 while 循环中执行此操作,而不是单个 if 语句。如果您检查一次然后更改它,它可能会得到与另一个相同的值。
-
@Achilles 这当然是更好的解决方案。
-
你能给我一个我应该如何做的示例代码吗?我还是个学生,需要学习
-
@NoahDeGraaff 如果你需要学习,我建议你去尝试一下。从 SO 复制代码不会教你任何东西。