1

我正在运行这个类和方法

public class DiceRoll
{
    static Random _r =new Random();

    public int Random6()
    {
        int n = _r.Next(1, 7);
        return n;
    }
}

我试图在另一个类的 if 语句中使用它,如下所示:

if (input == "d6")
{
    int dice = diceRoll.Random6();
    Console.WriteLine(dice);
}

我的问题是这个。如果我diceRoll.Random6();用这样的乘数调用diceRoll.Random6() * 2;它是创建两个随机数并将它们相加还是只是取一个并将其乘以 2?

我认为可能是后者,但我只是想在进入复杂的编程之前检查一下。

如果是后者,有没有办法让我的程序调用多个实例而Random6无需diceRoll.Random6() + diceRoll.Random6();执行它可以执行两次,但如果我想执行四六次,它就会变得不优雅。

提前致谢。

4

2 回答 2

3

它只生成 1 个随机数,然后将其乘以 2

您可以循环执行,或者如果您想花哨

var sum = Enumerable.Range(1, 6).Sum(x => diceRoll.Random6())

你可能想分解成...

var rolls = Enumerable.Range(1, 6).Select(x => diceRoll.Random6()).ToList();
var sumOfRolls = rolls.Sum();

这样你就有了每个卷的总和和列表。

于 2013-06-20T03:34:23.580 回答
3

从循环中调用方法

int result = 0;

    for(int i = 0; i < 10; i++)
    {
      result += Random6();
    }
于 2013-06-20T03:40:01.667 回答