2016-04-26 159 views
0

我想生成一个1到10之间的随机数。但是我收到了一些错误。C#生成随机数

public Form1() 
     { 
      InitializeComponent(); 
     } 
     int randomNumber = (0, 11); 
     int attempts = 0; 

    public int RandomNumber 
    { 
     get 
     { 
      return randomNumber; 
     } 

     set 
     { 
      randomNumber = value; 
     } 
    } 

它是所有在0,11逗号下是说 - >结构System.Int32表示32位有符号整数< - 。在11下它说 - >标识符预期的语法错误,','预计< - 。现在,如果我只是像int randomNumber = 0;那么它会正常工作,仍然有多次猜测,并且猜测数量会像它应该加起来一样,并且标签太高太低。只是数字将永远是0.

另外我怎样才能使它到我没有点击猜测按钮,我可以打在键盘上输入?

private void button1_Click_1(object sender, EventArgs e) 
    { 
     try 
     { 
      if (int.Parse(textBox1.Text) > RandomNumber) label1.Text = "Too high."; 

      else if (int.Parse(textBox1.Text) < RandomNumber) label1.Text = "Too low."; 
      else 
      { 
       label1.Text = "You won."; 
       textBox1.Enabled = false; 
       label2.Text = "Attempts: 0"; 
       textBox1.Text = String.Empty; 
       MessageBox.Show("You won in " + attempts + " attempts, press generate to play again.", "Winner!"); 
       attempts = 0; 
       label2.Text = "Attempts: " + attempts.ToString(); 
       return; 
      } 
      attempts++; 
      label2.Text = "Attempts: " + attempts.ToString(); 
     } 
     catch { MessageBox.Show("Please enter a number."); } 
    } 
+4

C#没有用于生成随机数的特殊语法。如果你想产生一个随机数,看看'随机'类。 – Luaan

+4

http://stackoverflow.com/questions/2706500/how-do-i-generate-a-random-int-number-in-c – daremachine

+0

你可以在这里找到答案:http://stackoverflow.com/questions/ 2706500 /我怎么生成一个随机-int-number-in-c – Breeze

回答

1

您可以使用类似下面的代码来生成1之间的随机数到10

 Random randomNumberGenrator = new Random(); 
     int num = randomNumberGenrator.Next(10) + 1; 
+1

而不是复制一个答案,你应该找到另一个问题来回答这个问题,并将这个问题标记为一个重复 – Breeze

+0

肯定感谢您的信息 – Maddy

+0

这将初始化“随机”实例,其种子为10.然后尝试从'0 'int.MaxValue - 1',然后给它加'1'。所以这个方法包含了从'1'到'int.MaxValue'的值。 – Enigmativity

0

看看this

使用Random类为了生成一个随机数。

private Random _rnd = new Random(); 
    private int RandomNumber 
     { 
      get 
      { 

       return _rnd.Next(0,11); 
      } 

      set 
      { 
       this = value; 
      } 
     } 
+2

每次调用属性时创建Random对象都不是一个好主意。 – joe

1

要生成一个随机数,您必须使用System.Random类。你的语法可以是这个样子:

System.Random rng = new System.Random(<insert seed if you want>); 
int randomNumber = rng.Next(1,11); 

你要做rng.Next(1,11),因为下界包括(1是一种可能的结果)和上限是排除(11心不是让添加到可能的结果池中)。

为了实现您的Enter快捷键,您必须在您调用button1_clicked方法的Forms KeyPress事件中添加一个方法。

button1_Clicked_1(this, System.EventArgs.Empty); 

最后,您必须将表单“KeyPreview”属性设置为true。