如何在每个循环中统一增加分数?

时间:2019-04-03 14:04:36

标签: c# loops unity3d increment

我正在使用foreach循环检查用户输入的给定5个乘法问题的答案。 (使用实例在开始时显示5个问题)

现在,如果答案正确,我将尝试添加分数计数器并将其加1,然后根据分数,我将显示星星。例如,如果分数小于3,则为1星,如果分数为4,则为2星,如果为5然后是3星。即使所有答案正确,我也只能获得一颗星星。谁能告诉我如何实现这一目标?

我尝试在if语句中添加score ++。但不会增加得分值。

%Y

1 个答案:

答案 0 :(得分:2)

在这里假设

(_TestModeQuestionUIRefrence.a * _TestModeQuestionUIRefrence.b) == answer

都是float个值。 从不直接使用float比较==。即使从逻辑上讲,他们可能永远不会平等。由于Floating point precision,它们之间可能会有很小的“ε”。


使用Mathf.Approximately来代替,它使用那个小的“ epsilon”作为其相等性定义。

if (Mathf.Approximately(_TestModeQuestionUIRefrence.a * _TestModeQuestionUIRefrence.b, answer))

类似于

if (_TestModeQuestionUIRefrence.a * _TestModeQuestionUIRefrence.b - answer <= diferenceSmallEnoughThreshold)

其中differenceSmallEnoughThreshold是为实现正常性而定义的阈值