2012-11-06 57 views
0

我試圖比較和乘以2個隨機數變量與在文本框中輸入的int值。如果這是正確的增量正確的答案,它不會增加數量,雖然它的增量單獨工作,但它不適用於文本框。將文本框字符串轉換爲int

private void button1_Click(object sender, EventArgs e) 
{ 
    int x = Randomnumber.Next(12); 
    int z = Randomnumber.Next(12); 

    //int cv = +correct; 
    textBox2.Text = x.ToString(); 
    textBox3.Text = z.ToString(); 

    int s = x * z; 
    if (s == int.Parse(textBox4.Text)) 
    { 
     correct++; 
     numbercorrect.Text = correct.ToString(); 
    } 
} 
+0

我不明白的問題是 –

+0

我不能在此刻發現任何明顯的問題是什麼。它應該做什麼? –

+1

我真的不明白問題是什麼。你應該告訴我們你當前的代碼發生了什麼,你期待的是什麼,以及它們有什麼不同。 – caesay

回答

0
private void button1_Click(object sender, EventArgs e) 
    { 


     int result = Convert.ToInt32(textBox4.Text); int x, z; 

     if (Convert.ToInt32(textBox2.Text) * Convert.ToInt32(textBox3.Text) == result) 
     { 
      correct++; 
      numbercorrect.Text = correct.ToString(); 
      Randomnumber.Next(12); 
      textBox2.Text = Randomnumber.Next(12).ToString(); 
      textBox3.Text = Randomnumber.Next(12).ToString(); 

     } 

}

0

您正在比較文本框值和兩個隨機值的乘積。除非您在按下按鈕之前知道這兩個隨機數字,否則將會失敗。

+0

,我的意思是如何使它工作 –

1

編輯這是假設您正試圖讓用戶在按下按鈕之前輸入他們的猜測。想象一下,我會把這個免責聲明放在這裏,因爲你正在試圖做的事情混亂。

看着你當前的代碼示例,你試圖解析textBox4.Text,但是,你沒有在代碼示例中的任何位置設置textBox4.Text。如果textBox4.Text是string.Empty,則int.Parse會拋出異常。

你也應該看看做Int.TryParse,它會告訴你它是否工作,而不會引發異常。

編輯:由於這是一個猜謎遊戲,你應該在textBox4才能繼續驗證用戶的輸入。

private void button1_Click(object sender, EventArgs e) 
{ 
    int answer; 
    if(!int.TryParse(textBox4.Text, out answer)) 
    { 
     MessageBox.Show("Please Enter A Valid Integer."); 
     return; 
    } 
    int x = Randomnumber.Next(12); 
    int z = Randomnumber.Next(12); 

    //int cv = +correct; 
    textBox2.Text = x.ToString(); 
    textBox3.Text = z.ToString(); 

    int s = x * z; 
    if (s == answer) 
    { 
     correct++; 
     numbercorrect.Text = correct.ToString(); 
    } 
} 
+0

很好的注意到TB4沒有被設置。 – caesay

+0

@anorton正確。我假設了同樣的事情。我只是提到它,因爲他沒有用一個有效的答案顯示它的一個例子,並且他不能盲目地相信這個值是一個有效的整數。 – TyCobb

0

該子程序將在Button1被按下時運行。這將顯示兩個隨機數供用戶乘。 (顯示在TB2和TB3中)

現在,只要顯示這些數字(並且在用戶有機會輸入任何答案之前),程序將檢查TB4中的值。這是空的,並在嘗試解析時引發錯誤。

嘗試將其分解爲2個子程序,其中包含2個按鈕:一個顯示新問題的按鈕和一個檢查答案的按鈕。

編輯:添加代碼。 (注:我寫這個寫意 - 不要知道它是否會編譯或不...剛剛得到的總體思路注按鈕名稱。)

//This routine sets up the problem for the user. 
private void btnGenerateProblem_Click(object sender, EventArgs e) { 
    //Get 2 random factors 
    int x = Randomnumber.Next(12); 
    int z = Randomnumber.Next(12); 

    //Display the two factors for the user 
    textBox2.Text = x.ToString(); 
    textBox3.Text = z.ToString(); 
} 

//This routine checks the user's answer, and updates the "correct count" 
private void btnCheckAnswer_Click(object sender, EventArgs e) { 
    //Get the random numbers out of the text boxes to check the answer 
    int x = int.Parse(textBox2.Text); 
    int z = int.Parse(textBox3.Text); 

    //Compute the true product 
    int s = x * z; 

    //Does the true product match the user entered product? 
    if (s == int.Parse(textBox4.Text)) { 
    correct++; 
    numbercorrect.Text = correct.ToString(); 
    } 
} 

btnCheckAnswer_Click開頭添加驗證碼。

+0

我相信答案應該在按鈕被按下之前先出現。這是一個猜謎遊戲。他只需要在運行之前驗證用戶的輸入是否有效。 – TyCobb

+0

它應該是一個猜謎遊戲,是的。但是,用戶應該如何猜測在隨機數字的顯示和代碼片尾部的檢查代碼之間?在運行此代碼段之前,不會顯示隨機數。用戶必須在上面的代碼段中的第10行和第11行之間輸入正確的答案。 ;) – apnorton

+0

嗯。我假設用戶在生成數字(在textBox4中輸入它們的猜測)之前猜測數值,然後點擊按鈕以查看它們是否正確猜測,然後顯示文本框中的值並在正確的情況下遞增計數器。也許我只是不完全瞭解他正在嘗試的是什麼。 – TyCobb