public void DisplayPlayerName(GameStateManager.PlayerAvailable player) { int idPlayer = 0; switch (player) { case GameStateManager.PlayerAvailable.Player1: idPlayer = 0; break; case GameStateManager.PlayerAvailable.Player2: idPlayer = 1; break; case GameStateManager.PlayerAvailable.Player3: idPlayer = 2; break; case GameStateManager.PlayerAvailable.Player4: idPlayer = 3; break; } txtPlayerName.text = score.scoreCards[idPlayer].GetPlayerName(); }
public void UpdateScore(GameStateManager.PlayerAvailable player) { int idPlayer = 0; switch (player) { case GameStateManager.PlayerAvailable.Player1: idPlayer = 0; break; case GameStateManager.PlayerAvailable.Player2: idPlayer = 1; break; case GameStateManager.PlayerAvailable.Player3: idPlayer = 2; break; case GameStateManager.PlayerAvailable.Player4: idPlayer = 3; break; } List <ScoreManager.ScoreCard.Score> scores = score.scoreCards[idPlayer].GetScores(); txtPlayerName.text = score.scoreCards[idPlayer].GetPlayerName(); CleanUpScores(); int i = 0; foreach (ScoreManager.ScoreCard.Score s in scores) { Text t = txtFrames[i]; if (s.scoreType == ScoreManager.ScoreCard.Score.ScoreType.Value) { t.text = s.Value.ToString(); } else if (s.scoreType == ScoreManager.ScoreCard.Score.ScoreType.None || s.scoreType == ScoreManager.ScoreCard.Score.ScoreType.Skip) { t.text = "-"; } else if (s.scoreType == ScoreManager.ScoreCard.Score.ScoreType.Spare) { t.text = "/"; } else if (s.scoreType == ScoreManager.ScoreCard.Score.ScoreType.Strike) { t.text = "X"; } i++; } List <int> frameTotals = score.scoreCards[idPlayer].GetFrameTotals(); i = 0; foreach (int total in frameTotals) { Text t = txtScoreTotals[i]; t.text = total.ToString(); i++; } }
public void PushScore(int score, GameStateManager.PlayerAvailable player) { ScoreCard.Score s = new ScoreCard.Score(); s.Value = score; //Select the player that the score belongs to int scoreCardId = 0; switch (player) { case GameStateManager.PlayerAvailable.Player1: scoreCardId = 0; break; case GameStateManager.PlayerAvailable.Player2: scoreCardId = 1; break; case GameStateManager.PlayerAvailable.Player3: scoreCardId = 2; break; case GameStateManager.PlayerAvailable.Player4: scoreCardId = 3; break; } //Determine if it's the first score entered int scoreCardPointer = 0; List <ScoreCard.Score> scores = scoreCards[scoreCardId].GetScores(); if (scores != null) { scoreCardPointer = scores.Count; } //Determine if score is for the first or second frame if (scoreCardPointer % 2 == 0) { s.frameType = ScoreCard.Score.FrameType.First; } else { s.frameType = ScoreCard.Score.FrameType.Second; } if (scoreCardPointer == 20) { s.frameType = ScoreCard.Score.FrameType.Extra; } if (scoreCardPointer > 17) { s.InLastFrame = true; } //Determine if it was a Spare switch (s.frameType) { case ScoreCard.Score.FrameType.First: //10 PINS Defeated if (score == 10) { s.scoreType = ScoreCard.Score.ScoreType.Strike; } else if (score == 0) { s.scoreType = ScoreCard.Score.ScoreType.None; } else { s.scoreType = ScoreCard.Score.ScoreType.Value; } break; case ScoreCard.Score.FrameType.Second: int previousScore = scores[scores.Count - 1].Value; //Previous frame + current = 10 PINS if (s.InLastFrame && score == 10) { s.scoreType = ScoreCard.Score.ScoreType.Strike; } else if (score + previousScore == 10) { s.scoreType = ScoreCard.Score.ScoreType.Spare; } else if (score == 0) { s.scoreType = ScoreCard.Score.ScoreType.None; } else { s.scoreType = ScoreCard.Score.ScoreType.Value; } break; case ScoreCard.Score.FrameType.Extra: if (score == 10) { s.scoreType = ScoreCard.Score.ScoreType.Strike; } else if (score == 0) { s.scoreType = ScoreCard.Score.ScoreType.None; } else { s.scoreType = ScoreCard.Score.ScoreType.Value; } break; } //Add the score to the cards scores.Add(s); if (s.scoreType == ScoreCard.Score.ScoreType.Strike && !s.InLastFrame) { ScoreCard.Score skipScore = new ScoreCard.Score(); skipScore.scoreType = ScoreCard.Score.ScoreType.Skip; skipScore.frameType = ScoreCard.Score.FrameType.Second; skipScore.Value = 0; scores.Add(skipScore); } lastScoreType = s.scoreType; lastFrameType = s.frameType; }
public ScoreCard(string playerName, GameStateManager.PlayerAvailable player) { SetPlayerName(playerName); }