2017-02-22 95 views
-4

如何限制分數? 玩家&每當一名玩家或敵人贏得我想要發生的事情時,敵人的分數就會遞增,那麼任何達到3分的玩家都將獲勝。C#如何限制分數?

int playerScore = 0; 
int enemyScore = 0; 
private void UpdateScore(bool playerWon) 
{ 
    if (playerWon) 
    { 
    playerScore++; 
    stateLabel.Text = "win"; 
    playerScoreLabel.Text = playerScore.ToString(); 
    } 
    else 
    { 
    enemyScore++; 
    stateLabel.Text = "lose"; 
    enemyScoreLabel.Text = playerScore.ToString(); 
    } 
} 
+3

您是否知道if語句? 'if(playerScore> = 3 || enemyScore> = 3){// Game Over} – sed

+1

那麼你清楚地知道if語句是如何工作的 - 當然你可以使用自己的邏輯來確定在哪裏添加附加代碼 – BugFinder

+0

Then ,在更新分數後,檢查它們中的任何一個是否已經達到了3 – Pikoh

回答

0

我知道這是行不通的,你需要修改它。也許只是給你一些印象。

int playerScore = 0; 
int enemyScore = 0; 
List<Player> players = new List<Player>(); 

    private void UpdateScore(bool playerWon) 
     { 
       if (playerWon) 
       { 
        players[Count].score++; 
        stateLabel.Text = "win"; 
        playerScoreLabel.Text = playerScore.ToString(); 
       } 
       else 
       { 
        players[Count].score++; 
        stateLabel.Text = "lose"; 
        enemyScoreLabel.Text = playerScore.ToString(); 
       } 

       CheckPlayerWon(); 
      } 

    private Player CheckPlayerWon() 
    { 
     foreach(Player play in players) 
     { 
      if(play.score >= 3) 
      { 
       // WON 
       break; 
      } 
     } 
    } 

    private class Player 
    { 
     string name = string.empty; 
     int playerID = 0; 
     int score = 0; 

     Player() 
     { 
      //SETUP 
     } 
    } 
+2

你最好應該寫評論,而不是僅僅投票。我們爲什麼要爲某人提供這樣簡單的解決方案?這是基本的東西,沒什麼特別的。我只想給他留下印象。 –

+0

Upvoted只是因爲你的印象。 –

0

一個簡單的方法是做類似下面的事情。顯然,這可能更加優雅。

int playerScore = 0; 
int enemyScore = 0; 
private GameState UpdateScore(bool playerWon) 
{ 
    const int scoreToReach = 3; 

    if (playerWon) 
    { 
     playerScore++; 
     stateLabel.Text = "win"; 
     playerScoreLabel.Text = playerScore.ToString(); 

     if (playerScore == scoreToReach) 
      return GameState.PlayerWon; 
    } 
    else 
    { 
     enemyScore++; 
     stateLabel.Text = "lose"; 
     enemyScoreLabel.Text = playerScore.ToString(); 

     if (enemyScore == scoreToReach) 
      return GameState.EnemyWon; 
    } 

    return GameState.GameInProgress; 
} 

public enum GameState 
{ 
    GameInProgress, 
    PlayerWon, 
    EnemyWon 
}