你好我是非常新的C#和编码,所以需要一些基本的帮助。 如果用户选择滚动多个骰子(2,3,4,5,6,7,8等),你怎么做才能使它在所有骰子上随机滚动?例如:“骰子滚动:2,5,3”。而不是它现在是“骰子滚动:2,2,2”,或“4,4,4”,基本相同的数字。
static int RollTheDice(Random rndObject)
{
Random dice = new Random();
int nr = dice.Next(1, 7); // if user requests to roll multiple dices how
// do you make all the rolls random and not the same
return nr;
}
static void Main()
{
Random rnd = new Random();
List<int> dices = new List<int>();
Console.WriteLine("\n\tWelcome to the dicegenerator!");
bool go = true;
while (go)
{
Console.WriteLine("\n\t[1] Roll the dice\n" +
"\t[2] Look what you rolled\n" +
"\t[3] Exit");
Console.Write("\tChoose: ");
int chose;
int.TryParse(Console.ReadLine(), out chose);
switch (chose)
{
case 1:
Console.Write("\n\tHow many dices do you want to roll?: ");
bool input = int.TryParse(Console.ReadLine(), out int antal);
if (input)
{
for (int i = 0; i < antal; i++)
{
dices.Add(RollTheDice(rnd));
}
}
break;
case 2:
Console.WriteLine("\n\tDices rolled: ");
foreach (int dice in dices)
{
Console.WriteLine("\t" + dice);
}
break;
case 3:
Console.WriteLine("\n\tThank you for rolling the dice!");
Thread.Sleep(1000);
go = false;
break;
default:
Console.WriteLine("\n\tChoose between 1-3 in the menu.");
break;
答案 0 :(得分:-1)
您每次都在创建一个新的Random
,如果在短时间内调用,它将产生类似的数字。请参阅此处:How do I generate a random int number in C#?
您已经将Random
传递给您的函数,使用它而不是创建一个新函数!
static int RollTheDice(Random rndObject)
{
int nr = rndObject.Next(1, 7); // if user requests to roll multiple dices how
// do you make all the rolls random and not the same
return nr;
}