2013-05-05 21 views
0

我創建一個排名系統(在C#Windows 8應用),其工作原理如下:C#比較INT的值(在文本框&TextBlock中)

例:匹配得分= 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 - 正確標記您的問題。 2 - 不要在基於XAML技術的過程代碼中操作UI元素。 UI不是數據。學習MVVM,這是正確的代碼編寫方式。 – 2013-05-05 08:36:06

回答

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; 
} 
+0

感謝您幫助我,像魅力一樣工作! – user1951083 2013-05-05 08:54:23