C#中的猜猜游戏,我无法让用户猜测游戏开始时显示的数字



我正在用 C# 创建一个 Guess 游戏,我无法让用户猜测的数量在游戏开始时显示 10,它只会在用户已经尝试 1 次猜测时显示,它会显示 10 次,程序总共会给用户 11 次猜测,你能帮我吗?

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;
namespace GuessingGame
{
    public partial class Form1 : Form
{
    int _randnum;
    int _userguess;
    void GetRandomNumber()
    {
        int min = 1;
        int max = 101;
        Random randomiser;
        randomiser = new Random();
        _randnum = randomiser.Next(min, max);

    }
    public Form1()
    {
        InitializeComponent();
    }
    private void label1_Click(object sender, EventArgs e)
    {
    }
    private void buttonGuess_Click(object sender, EventArgs e)
    {
        string user = textBox1.Text;
        string guessnum = Convert.ToString(_userguess);
        int guess = 0;

        if (int.TryParse(user, out guess))
        {
            if (_userguess == 0)
            {
                buttonGuess.Enabled = false;
                label3.Text = "Game Over";
            }
            else if (guess == _randnum)
            {
                label3.Text = "Good guess";
                buttonGuess.Enabled = false;
            }
            else if (guess < _randnum)
            {
                label3.Text = "Too low guess";
                _userguess--;
            }
            else if (guess > _randnum)
            {
                label3.Text = "Too High guess";
                _userguess--;
            }
            else if (guess < 0 || guess > 100)
            {
                label3.Text = "Your guess is out of the range";
                _userguess--;
            }
        }
        else
        {
            label3.Text = "Yous should introduce a number";
            _userguess--;
        }
        label2.Text = guessnum;
    }
    private void buttonExit_Click(object sender, EventArgs e)
    {
        Application.Exit();
    }
    private void textBox1_TextChanged(object sender, EventArgs e)
    {
    }
    private void Form1_Load(object sender, EventArgs e)
    {
        GetRandomNumber();
        _userguess = 10;
    }
    private void buttonNew_Game_Click(object sender, EventArgs e)
    {
        GetRandomNumber();
        buttonGuess.Enabled = true;
        _userguess = 10;
    }
}

}

你可以做的是有一个NewGame函数,它进行游戏设置并删除label2中的文本,并将猜测计数器设置为11。

private void NewGame()
{
    GetRandomNumber();
    buttonGuess.Enabled = true;
    label2.Text = string.Empty;
    _userguess = 11;
}

然后,您可以在表单加载和新游戏按钮单击功能中使用它:

private void Form1_Load(object sender, EventArgs e)
{
    NewGame();
}
private void buttonNew_Game_Click(object sender, EventArgs e)
{
    NewGame();
}

您在错误的点设置了猜测数字字符串。您希望它在 if 语句后显示数字,因此您将变量设置在 if 语句之后。如果在 if 语句之前设置 String,它将获得初始值 _userguess,即 10。

要在游戏开始时显示 10,您必须在开始新游戏时设置 label2 的文本。

如果你想让 guessnum 在每次调用它时都放出正确的字符串。应将其设置为属性或方法。

private string guessnum{ get{ return _userguess.ToString(); } }

最新更新