之前可能已经问过,但如果有,我找不到它。我正在写一个小游戏,其中随机生成总和以供用户回答,并且计算正确+错误的答案。它到目前为止工作,但我希望实现一个系统,游戏在两个随机选择的数字之间随机选择+, - ,/和*符号,然后根据选择的数据改变计算正确答案的方式。为了更好的主意,这是我目前的相关代码:
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'是显示必须回答的总和的地方,尽管你可以说。我想弄清楚的是我怎么能告诉它在“+”,“ - ”,“/”和“*”之间做出选择,它当前总是说“+”,然后将变量'answer'改为反映所选的符号。我打算使用if语句来反映符号的选择,但我很遗憾如何让它首先在它们之间做出选择。非常感谢帮助!
答案 0 :(得分:3)
您可以使用数组:
char[] operators = { '+', '-', '*', '/' };
然后选择一个:
char op = operators[randomNum.Next(operators.Length)];
可以使用其他内容,例如enum Operator { plus, minus, mult, ... }
而不是char。在每种情况下,您当然都需要一个小型的interprator来从char
/ enum
运算符中获取您自己的正确答案。像:
switch(op)
{
case '+' :
answer = a + b;
break;
case '-' :
answer = a - b;
break;
// etc
}
答案 1 :(得分:2)
试试这个
Random r = new Random();
char[] operators = new char[] { '+', '-', '*', '/' };
char op = operators[r.Next(0, operators.Length)];