c#比较int值(在TextBox& TextBlock中)

时间:2013-05-05 08:34:35

标签: c#

我正在创建一个排名系统(在c#Windows 8应用程序中),其工作原理如下:

示例:匹配分数= 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 TextBoxs (MatchScore1和MatchScore2) 玩家的预测是2 TextBlocks (Forecast1和Forecast2) 单击按钮时,它会计算得分并将其显示在TextBlock(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分,我该怎么办呢?

1 个答案:

答案 0 :(得分: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;
}