4

以前可能有人问过这个问题,但是如果有,我找不到。我正在编写一个小游戏,其中随机生成总和供用户回答,并计算正确+错误的答案。到目前为止它可以工作,但我希望实现一个系统,游戏在两个随机选择的数字之间随机选择 +、-、/ 和 * 符号,然后根据选择的数字改变计算正确答案的方式。为了更好的主意,这是我当前的相关代码:

    public void makeNewSum()
    {
        var randomNum = new Random();
        num1 = randomNum.Next(0, 10);
        num2 = randomNum.Next(0, 10);
        answer = num1 + num2;
        label1.Text = num1.ToString() + " + " + num2.ToString() + " = ";
        txtAnswer.Text = "";
        txtAnswer.Focus();

项目“label1”是显示必须回答的总和的地方,尽管您可能知道。我想弄清楚的是如何告诉它在“+”、“-”、“/”和“*”之间进行选择,它目前总是说“+”,然后将变量“答案”更改为反映所选符号。我打算使用 if 语句来反映符号的选择,但我不知道如何让它首先在它们之间进行选择。非常感谢您的帮助!

4

2 回答 2

3

您可以使用数组:

char[] operators = { '+', '-', '*', '/' };

然后选择一个:

char op = operators[randomNum.Next(operators.Length)];

可以使用其他东西,例如enum Operator { plus, minus, mult, ... }代替 char。在每种情况下,您当然都需要一个小型解释器来从char/enum 运算符那里获得您自己的正确答案。像:

switch(op)
{
   case '+' : 
      answer = a + b;
      break;

   case '-' : 
      answer = a - b;
      break;

   // etc
}
于 2013-09-08T13:41:24.167 回答
2

试试这个

Random r = new Random();
char[] operators = new char[] { '+', '-', '*', '/' };
char op = operators[r.Next(0, operators.Length)];
于 2013-09-08T13:43:29.993 回答