我正在创建一个排名系统(在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分,我该怎么办呢?
答案 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;
}