我在C#中使用Visual Studio Professional创建了一个Windows窗体应用程序。在我的程序中,我提示用户输入他/她想要的卷数,然后按Enter键获取数字。
这些数字在标签下以相同的形式显示并记录下来。我知道如何计算数字知道,但我不能得到随机数生成器来生成用户输入的滚动数。
这就是我在做的事情:
Random randGen = new Random;
int oneRoll = randGen.Next(1,7) + randGen(1, 7);
我想让同一个程序出现用户想要的次数。我尝试了for
循环,但无法得到我想要的东西。
答案 0 :(得分:1)
尝试这样的事情:
Random randGen = new Random();
var rolls = new List<int>();
int sum = 0;
for (int i = 0; i < numberOfRolls; i++)
{
int randomNum1 = randGen.Next(1,7);
int randomNum2 = randGen.Next(1,7);
sum += randomNum1 + randomNum2;
rolls.Add(randomNum1);
rolls.Add(randomNum2);
}
现在所有单独的卷都是卷,并且已经计算了它们的总和。
编辑滚动两个骰子,单独录制,然后将它们加在一起。
答案 1 :(得分:1)
int rolls = Console.ReadLine();
int total = 0;
Random randGen = new Random(System.DateTime.Now.Millisecond);
for(int i =0; i<rolls; i++)
{
int oneRoll = randGen.Next(1,7) + randGen.Next(1, 7);
Console.WriteLine("Rolled " + oneRoll);
total += oneRoll;
}
Console.WriteLine("Total " + total);
NB。你不需要毫秒位,种子只是让它更随机
答案 2 :(得分:1)
确保只创建一次随机数生成器。
不要在每次循环迭代中创建它。
或者,数字可能不是随机的,因为循环太紧,它将与内部生成器中的种子使用相同的时间。
答案 3 :(得分:0)
你的代码完全错了......
Random randGen = new Random(DateTime.Now.Ticks); // unique seed, mostly
int result = 0;
for (int i = 0; i < number_of_rolls_the_user_wants; i++)
result += randGen.Next(2, 14); // (1 - 7) + (1 - 7) = 2 - 14 lol... >.>
将number_of_rolls_the_user_wants
替换为用户想要的掷骰数。
result
将保留结果。
另请注意,如果您在短时间内生成许多随机数,使用相同的Random
对象!