2016-04-26 210 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。