单击事件重启

时间:2017-12-09 07:13:27

标签: c#

我在Visual Studio 2017版本中使用c#windows窗体

我已经为练习制作了一个高低的游戏并且它的工作非常完美,但是我想要完成的是一旦有人点击10个猜测就会重新启动应用程序。

这是我来到这里的最后一招,但我没有其他人可以求助。我已经尝试了各种各样的东西,让它在10次猜测重启应用程序时起作用,但没有任何效果,我得到错误。

这里是开始按钮和猜测按钮

我使用

的变量
    static int intRandomNumber;
    static int intNumGuesses;
    static int intBestLowScore;
    static int intGuessedNum;
    static int difference = 0;

开始按钮

        {
        //Random Numbers//

        Random rnRandomNumber = new Random();
        intRandomNumber = rnRandomNumber.Next(0, 1000);
        lblRandomNumber.Text = intRandomNumber.ToString();
        txtGuess.Enabled = true;
        btnGuess.Enabled = true;
        btnStart.Enabled = false;
        lblAnswer.Text = "".ToString();
        intBestLowScore = intNumGuesses;
        intNumGuesses = 0;
        lblNumGuesses.Text = "0";
        lblBestScore.Text = intBestLowScore.ToString();
        lblAnswer.BackColor = Color.White;
        txtGuess.Focus();
        SoundPlayer audio = new SoundPlayer(High_Low_Game.Properties.Resources.Cheering);
        audio.Stop();
    }

猜猜按钮

{
        intNumGuesses++;
        lblNumGuesses.Text = intNumGuesses.ToString();

        try
        {
            intGuessedNum = Convert.ToInt32(txtGuess.Text);


            if (intRandomNumber - intGuessedNum < difference)
            {
                lblAnswer.Text = "To High";
                lblAnswer.ForeColor = Color.Red;
                lblAnswer.BackColor = Color.White;
                txtGuess.Text = "";
                txtGuess.Focus();
            }
            else if (intRandomNumber - intGuessedNum > difference)
            {
                lblAnswer.Text = "To Low";
                lblAnswer.ForeColor = Color.Blue;
                lblAnswer.BackColor = Color.White;
                txtGuess.Text = "";
                txtGuess.Focus();
            }
            else
            {
                lblAnswer.Text = "You Guessed it.";
                lblAnswer.ForeColor = Color.Black;
                lblAnswer.BackColor = Color.Green;
                btnGuess.Enabled = false;
                txtGuess.Enabled = false;
                txtGuess.Text = "";
                btnStart.Enabled = true;
                SoundPlayer audio = new SoundPlayer(High_Low_Game.Properties.Resources.Cheering);
                audio.Play();

            }
        }
        catch
        {
            MessageBox.Show("Input your Guess again and Integers Only.  Retry.");
            txtGuess.Focus();
        }

     }

3 个答案:

答案 0 :(得分:1)

您错过了if声明

猜猜按钮:

private void btnGuess_Click(object sender, EventArgs e)
        {
            intNumGuesses++;
            lblNumGuesses.Text = intNumGuesses.ToString();
//This is what you're looking for-v
            if(intNumGuesses==10)
            {
                btnGuess.Enabled = false;
                txtGuess.Enabled = false;
                txtGuess.Text = "";
                btnStart.Enabled = true;
                intNumGuesses=0;
            }
//This is what you're looking for-^
            try
            {
                intGuessedNum = Convert.ToInt32(txtGuess.Text);


                if (intRandomNumber - intGuessedNum < difference)
                {
                    lblAnswer.Text = "To High";
                    lblAnswer.ForeColor = Color.Red;
                    lblAnswer.BackColor = Color.White;
                    txtGuess.Text = "";
                    txtGuess.Focus();
                }
                else if (intRandomNumber - intGuessedNum > difference)
                {
                    lblAnswer.Text = "To Low";
                    lblAnswer.ForeColor = Color.Blue;
                    lblAnswer.BackColor = Color.White;
                    txtGuess.Text = "";
                    txtGuess.Focus();
                }
                else
                {
                    lblAnswer.Text = "You Guessed it.";
                    lblAnswer.ForeColor = Color.Black;
                    lblAnswer.BackColor = Color.Green;
                    btnGuess.Enabled = false;
                    txtGuess.Enabled = false;
                    txtGuess.Text = "";
                    btnStart.Enabled = true;

                }
            }
            catch
            {
                MessageBox.Show("Input your Guess again and Integers Only.  Retry.");
                txtGuess.Focus();
            }
        }

答案 1 :(得分:0)

在你的“猜测按钮”中处理程序执行以下操作:

{
    intNumGuesses++;
    lblNumGuesses.Text = intNumGuesses.ToString();
    bool guessed = false;
    try
    {
        intGuessedNum = Convert.ToInt32(txtGuess.Text);


        if (intRandomNumber - intGuessedNum < difference)
        {
            ...
        }
        else if (intRandomNumber - intGuessedNum > difference)
        {
           ...
        }
        else
        {
           ...
           guessed = true;
        }
        if ((intNumGuesses == 10}&&(!guessed))
        {
           // Show Message "max. nr. of guesses reached'
           // call method to clear values from textBoxes & enable Start-button
        }
    catch
    {
        MessageBox.Show("Input your Guess again and Integers Only.  Retry.");
        txtGuess.Focus();
    }

 }

答案 2 :(得分:0)

这个怎么样?

{
  intNumGuesses++;
  if(intNumGuesses >= 10)
  {
    StartButton(); // pseudo call, replace with whatever the name and parameters of your method really are
    return;
  }
  lblNumGuesses.Text = intNumGuesses.ToString();
  // ...
}

我建议您编写一个Init()方法,您可以使用StartButton()方法或必要时使用GuessButton()方法调用