基本滚动骰子数生成器

时间:2017-10-28 18:34:11

标签: c# random

你好我是非常新的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;

1 个答案:

答案 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;
}