小学数学游戏






4.05/5 (7投票s)
这是一个简单的小学数学游戏,您可以和您的孩子一起玩。
引言
小学学生要学习五种简单的运算:加法、减法、乘法和令人畏惧的除法。 等等?! 这只有四个!
这个项目制作简单,易于玩。 它有三种不同的技能等级,可以让小学生在玩游戏的同时学习和练习他们的技能,以及更难的等级,几乎可以挑战任何人。 当时间流逝时,您必须尝试一个接一个地解决问题。
这个游戏对孩子来说就像玩游戏一样简单。
您有一个当前值,您尝试使用键盘和指定的运算将其操作为目标值。 当您单击一个数字按钮时,该数字是数学运算中的第二个操作数。 在上图中,按下数字“2”将导致 43÷2=21(值四舍五入到最接近的整数)。 由于这个 21 不是目标值 26,所以当前值 43 被替换为 21,时钟继续倒计时。 “下一个运算”列表被移位,该列表最左边的符号是新的“指定运算”。 这种情况一直持续到达到目标值,然后生成一个新的级别或问题,并且时钟重置。
这可以带来很多乐趣,而且专家级别也很难,所以即使您认为自己是数学天才,这可能也比在办公室玩纸牌游戏更好。
还记得四年级吗? 当 23÷7=3 时 余数 2? 在这个游戏中,您会发现一个难以捉摸的“第五个运算”,称为“模”。 它基本上问“如果我用一个数除以另一个数,余数是多少?”,因此 23 模 7 等于 2。
使用代码
这个项目本身就很有意义。 它只是一个游戏,其目的不是制作成任何东西,而是一个易于制作和简单易玩的游戏的例子,这将磨练您的数学技能。 只需下载 zip 文件,解压缩其内容,然后在您的 C# 集成开发环境中加载它并按 F5。 您就可以开始运行了。
关注点
这里有一些初学者可以尝试的东西,但主要是,我想向您介绍一个名为“条件赋值”的东西。 这是一个鲜为人知的 C 语言语法,我非常喜欢。 基本上,它会问一个产生真或假的问题,然后根据该问题的结果返回两个值之一。
看起来是这样的:
<variable> = <condition> ? <true result> : <false result>;
例如
x = (y>=0) 1 : -1;
如果 y 大于或等于零,则将 x 赋值为 1;如果不是,则将 x 设置为 -1。
如果我们编写自己的 C# 函数来做同样的事情,它可能如下所示
public int ConditionalAssignment(bool bolCondition,
int intTrueResult, int intFalseResult)
{
if (bolCondition)
return intTrueResult;
else
return intFalseResult;
}
但是,条件赋值的功能要强大得多,因为它可以返回任何东西,并且不限于任何特定类型,就像这个仅接受和返回整数的例子一样。
例如
string strName = (bolInformal ? "Bob" : "Mr.Robert Fourmel");
在这里,我们询问布尔变量 'bolInformal
' 是否已设置,然后将正确的名称分配给我们刚刚创建的字符串变量 strName
。
在函数 LevelCompleted()
中,您会找到以下行
intScore += intLevelDelay * ((mnuEasy.Checked) ? 1 : (mnuNormal.Checked) ? 2 : 3);
此行将条件赋值嵌入为 false 返回值,也可以写成
int intIncrementFactor;
if (mnuEasy.Checked)
intIncrementFactor = 1;
else if (mnuNormal.Checked)
intIncrementFactor = 2;
else
intIncrementFactor = 3;
intScore = intScore + intLevelDelay * intIncrementFactor;
这两个例子的结果是相同的,所以两者都没有错。 有些人可能认为一个比另一个更容易阅读,但不会总是同意哪个。 您可以根据需要嵌入任意多个,但如果您这样做,可能需要考虑选择 Switch/Case 场景;但是,这里有一个例子
bool bolFirstCondition = false,
bolSecondCondition = false,
bolThirdCondition = true,
bolFourthCondition = false;
int intExample = (bolFirstCondition ? 1 :
(bolSecondCondition ? 2 :
(bolThirdCondition ? 3 :
(bolFourthCondition ? 4 : 5))));
由于 bolThirdCondition
是遇到的第一个结果为“true”的条件,因此我们的变量 intExample
被设置为值 3。
如果您愿意,您可以在条件赋值的条件部分或结果值中包含函数。 例如
intScore = (rndGenerator.Next(5) > 2) ? firstFunction() : secondFunction();
在这里,如果随机数生成器生成一个大于 2 的数字,我们将 intScore
分配给函数 firstFunction()
的结果,如果生成的数字小于或等于 2,则将函数 secondFunction()
的结果分配给 intScore
。
您可以使用它做很多事情。