0

次のように機能するランキング システム (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 つの TextBox (MatchScore1 と MatchScore2) に入力されますプレーヤーの予想は 2 つのTextBlock (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 ポイントを獲得する必要があります。これを行うにはどうすればよいですか?

4

1 に答える 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 に答える