0

我正在创建一个排名系统(在 c# Windows 8 App 中),其工作方式如下:

示例:比赛得分 = 2 - 1

玩家 A:预测 = 1 - 1(输入 1 个正确分数输入 1 分)

玩家 B:预测 = 0 - 2(0 分)

玩家 C:预测 = 3 - 0(表示该队获胜 3 分)

玩家 D:预测 = 2 - 0(4 分:3 分表示球队获胜 + 1 分正确得分输入)

玩家 E:预测 = 2 - 1(5 分:表示球队获胜 3 分 + 正确得分输入 2 分

比赛的比分在 2 个文本框中输入( MatchScore1 和MatchScore2) 球员的预测在 2个文本块中2 个文本块中(Forecast1 和 Forecast2) 当点击一个按钮时,它会计算得分并将其显示在一个文本块中(AmountPoints)

我目前所做的:

  private void btnBereken_Click(object sender, RoutedEventArgs e)
    {
        int score = 0;
        // Check: Correct input score
        if (Forecast1.Text == MatchScore1.Text)
        {
           score += 1;
           AmountPoints.Text = score.ToString();
        }
        // Check: Correct input score
        if (Forecast2.Text == MatchScore2.Text)
        {
            score += 1;
            AmountPoints.Text = score.ToString();
        }
        // nothing correct
        else
        {
            AmountPoints.Text = score.ToString();
        }
    }

任何想法如何检查预测是否已进入正确的球队获胜?如果一场比赛的比分是平局,球员也应该得到 3 分,我该怎么做?

4

1 回答 1

1

首先,移出文本框的数字。您应该将用户界面与业务逻辑分开。这将导致您有一个函数来执行“数学”,并且您的用户界面将不得不调用该函数。通过将文本转换为数字,您可以将这些数字与<>查看谁赢了。

int foreCast1 = int.Parse(Forecast1.Text);
int foreCast2 = int.Parse(Forecast2.Text);
int matchScore1 = int.Parse(MatchScore1.Text);
int matchScore2 = int.Parse(MatchScore2.Text);
AmountPoints.Text = DoTheMath(foreCast1, foreCast2, amountPoints1, amountPoints2).ToString();
...
public int DoTheMath(int foreCast1, int foreCast2, int matchScore1 , int matchScore2 )
{
    int score = 0;
    if (forecast1 == matchScore1)
        score++;
    if (forecast2 == matchScore2)
        score++;
    if (matchScore1 > matchScore2 && foreCast1 > foreCast2)
        score += 3;
    if (matchScore1 < matchScore2 && foreCast1 < foreCast2)
        score += 3;
    return score;
}
于 2013-05-05T08:46:40.047 回答