0

我创建了一个从中获取用户输入并将其与 100 个随机生成的数字进行比较的方法。一旦他们单击猜测按钮,就会显示结果。为了帮助用户,当他们将鼠标悬停在标签上时,我应该给他们一个提示,提示应该比实际数字高 3 或低 3。我无法弄清楚如何获得当用户点击猜测按钮时生成的随机数等于悬停事件的数字。对不起所有的代码,任何帮助将不胜感激。

这是我创建随机数的方式:

   public partial class Form1 : Form
   {
    int[] rndArray = new int[100];

    public void getNumbers()
    {
        Random random = new Random();
        for (int x = 0; x < rndArray.Length; x++)
        {
            rndArray[x] = random.Next(1, 100); 
        }
    }

这是 guss 按钮事件:

 private void Guess_Click(object sender, EventArgs e)
    {
        getNumbers();
        for (int x = 0; x < rndArray.Length; x++)
        {
                if (Convert.ToInt32(textBox1.Text) == rndArray[x])
                { 
                    result.Text = "You Win!";
                    correct.Text = "Correct: ";
                }
                else
                { 
                    result.Text = "Sorry - you loose; the number is: " + rndArray[x];
                    incorrect.Text = "Incorrect: ";
                }
        }

和鼠标悬停事件:

private void mouseHere_MouseHover(object sender, EventArgs e)
    {
        getNumbers();
        for (int x = 0; x < rndArray.Length; x++)
            hint.Text = "It's not " + (rndArray[x] +- 3);
    }
4

1 回答 1

1

我看到三个可能的问题。

首先,在鼠标悬停和猜测单击功能开始时,调用 GetNumbers,它会生成 100 个数字并将它们分配给数组。你应该每场比赛只生成一次。我建议在每场比赛开始时调用一次(可能在 FormShown 或 FormLoad 事件处理程序中),并且在下一场比赛开始之前不要再次调用它。否则,数字将不断变化。

其次,在您的鼠标悬停功能中,您有一个 for 循环将文本分配给“提示”100 次。前 99 个提示可能不准确,因为鼠标悬停事件结束时将显示最后一个数字的提示。您需要确定要为哪个数组元素提供提示,并将其分配给适当的提示显示。

第三,+-运算符不是 C# 中的实际运算符。如果这实际上是在编译和运行,它可能会以某种方式解释它,例如hint.Text = "It's not " + (rndArray[x] + (-3);我建议使用 Random 对象生成一个数字,然后使用它是奇数还是偶数来确定是加还是减。只要确保你不重新分配数组。

编辑:关于确定是添加还是减去提示,请确保每次悬停时不要随机生成提示;为该号码执行一次并存储提示。否则,将鼠标悬停在它上面几次将显示两个可能的提示。

于 2013-05-13T18:47:14.243 回答