2017-07-19 59 views
0

所以我试图做一个窗口形式猜数字游戏,很简单,但是当我点击猜测时,无论标签上升一个。我认为,尽管有它们成为全球userGuess这可能是由于我的变量仍然出来作为一个局部变量...` 注释掉userScore消除这个问题,但我还是不明白为什么逻辑失败C#按钮点击和私有变量

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using System.Drawing; 

namespace Guess_The_Number_Form 
{ 
    public partial class Form1 : Form 
    { 
     private int userScore; 
     private int randNum; 
     private int userGuess; 

     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      txtBoxGuess.Hide() 
      ; 
     } 

     private void toolTip1_Popup(object sender, PopupEventArgs e) 
     { 

     } 

     private void btnRandom_Click(object sender, EventArgs e) 
     { 
      Random rand = new Random(); 
      int randNum = rand.Next(0, 10); 
     } 

     private void textBox1_TextChanged(object sender, EventArgs e) 
     { 
      userGuess = Convert.ToInt32(txtBoxGuess.Text); 
     } 

     private void txtBoxGuess_Enter(object sender, EventArgs e) 
     { 

     } 

     private void btnGuess_Click(object sender, EventArgs e) 
     { 
      if (userGuess == randNum) 
      { 
//    userScore++; 
       lbluserScore.Text = userScore.ToString(); 
       lbluserScore.Text = $"{userScore}"; 
      } 
      else if (userGuess != randNum) 
      { 
       userScore--;    
       lbluserScore.Text = userScore.ToString(); 
       lbluserScore.Text = $"{userScore}"; 
      } 
      else if (userScore < 0) 
      { 
       lbluserScore.Text = Color.Red.ToString(); 
      } 
     } 
    } 
} 

回答

0

你需要改变这一点:

private void btnRandom_Click(object sender, EventArgs e) 
    { 
     Random rand = new Random(); 
     int randNum = rand.Next(0, 10); 
    } 

private void btnRandom_Click(object sender, EventArgs e) 
    { 
     Random rand = new Random(); 
     randNum = rand.Next(0, 10); 
    } 

这样一来,你就设置成员变量randNum而不是局部变量randNum。您还想检查是否确实将用户输入的值分配到userGuess。我的猜测是,这不是,这意味着你永远不会改变任何一个变量的值,程序认为用户总是猜测正确的值。

+0

啊我真是个白痴,谢谢!所以用于控制台应用程序我忘记了它的方式。试图修复userGuess错误,因为我们说 编辑:修正,欢呼队友! –