【问题标题】:C# GUI Guessing GameC# GUI 猜谜游戏
【发布时间】:2014-11-03 00:47:54
【问题描述】:

我正在尝试用 C# 创建一个表格猜谜游戏,它允许用户 100 次猜测并计算他们错误的次数和正确的次数。我使用 for 循环来尝试完成此操作,但是每次我输入猜测时,一个计数器将等于 1,另一个计数器将等于 99。问题是它没有退出 for 循环,我无法弄清楚如何让它退出。

namespace Assignment10
{
public partial class Form1 : Form
{
    Random random = new Random();
    int[] rando = new int[100];
    int answer;
    int counter1 = 0;
    int counter2 = 0;
    int hoverNumber;

    public Form1()
    {
        InitializeComponent();
        start();
    }

    private void exitButton_Click(object sender, EventArgs e)
    {
        Application.Exit();
    }

    private void nextGuess_Click(object sender, EventArgs e)
    {
        guessButton.Enabled = true;
        hoverBox.Text = "??";
    }
    public void start()
    {
        for (int x = 0; x < rando.Length; x++)
        {
            rando[x] = random.Next(0, 100);
            hoverNumber = rando[x];
        }
    }

    private void guessButton_Click(object sender, EventArgs e)
    {
        answer = Convert.ToInt32(GuessBox.Text);

        for (int i = 0; i < rando.Length; ++i)
        {
            if (answer != rando[i])
                counter1++;
            else
                counter2++;
            for (int x = 0; x < 1; ++x)
            {
                if (answer != rando[i])
                {
                    nextGuess.Enabled = true;
                    guessButton.Enabled = false;
                    label3.Text = "The number incorrect is: " + counter1;
                    GuessBox.Clear();
                }
                else if (answer == rando[i])
                {
                    nextGuess.Enabled = true;
                    guessButton.Enabled = false;
                    label2.Text = "The number correct is: " + counter2;
                    GuessBox.Clear();
                }
            }
        }
    }
    private void mouseLabel_MouseHover(object sender, EventArgs e)
    {
        hoverBox.Text = Convert.ToString(hoverNumber - 3);
    }

}
}

【问题讨论】:

  • 即使在 100 次迭代之后也不行?这就是你的循环持续多长时间。

标签: c# winforms for-loop


【解决方案1】:

根据您的问题,问题可能出在您的guessButton_Click 方法中,该方法非常 混乱。我假设您只想将猜测与当前数字进行比较,而不是遍历数组。每个数字猜一猜,对吧?无论如何,由于您已经有了正确和错误猜测数量的计数器,这简化了事情。只需对照counter1 + counter2 的数组索引检查猜测,如下所示:

private void guessButton_Click(object sender, EventArgs e)
{
    answer = Convert.ToInt32(GuessBox.Text);
    if (answer == rando[counter1+counter2])
    {
        counter2++;
        label2.Text = "The number of correct guesses is: " + counter2;
    }
    else (answer != rando[i])
    {
        counter1++;
        label3.Text = "The number if incorrect guesses is: " + counter1;
    }
    nextGuess.Enabled = true;
    guessButton.Enabled = false;
    GuessBox.Clear();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-14
    • 2015-04-15
    • 2020-11-22
    相关资源
    最近更新 更多