C#随机数和数组

时间:2016-02-16 07:06:28

标签: c#

我正在尝试制作一个" Yahtzee" C#游戏。到目前为止,我已经创建了一个带有滚动按钮​​的表单,该表单从五个不同标签中的1,6个生成5个随机数。我不知道如何将这些随机数放入数组中。 这是我用于随机数滚动按钮的代码。

private void btnRoll_Click(object sender, EventArgs e)
{
    Random random = new Random();
    int randomNumber = random.Next(1, 7);
    lblDie1.Text = Convert.ToString(randomNumber);

    Random random2 = new Random();
    int randomNumber2 = random.Next(1, 7);
    lblDie2.Text = Convert.ToString(randomNumber2);

    Random random3 = new Random();
    int randomNumber3 = random.Next(1, 7);
    lblDie3.Text = Convert.ToString(randomNumber3);

    Random random4 = new Random();
    int randomNumber4 = random.Next(1, 7);
    lblDie4.Text = Convert.ToString(randomNumber4);

    Random random5 = new Random();
    int randomNumber5 = random.Next(1, 7);
    lblDie5.Text = Convert.ToString(randomNumber5);
}

有人可以帮我解释如何将这些数字存储到数组中吗?

1 个答案:

答案 0 :(得分:4)

不要重新创建Random,它会使随机值严重倾斜

  // Simplest, not thread-safe
  private static Random random = new Random();

  private void btnRoll_Click(object sender, EventArgs e) {
    lblDie1.Text = random.Next(1, 7).ToString(); 
    lblDie2.Text = random.Next(1, 7).ToString(); 
    lblDie3.Text = random.Next(1, 7).ToString(); 
    lblDie4.Text = random.Next(1, 7).ToString(); 
    lblDie5.Text = random.Next(1, 7).ToString(); 
  }

要创建数组,您可以使用 Linq

  int[] numbers = Enumerable
    .Range(0, 5)
    .Select(x => random.Next(1, 7))
    .ToArray();

  // Let's print out the array:
  Console.Write(String.Join(" ", numbers));