Exemple #1
0
    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();
    }
Exemple #2
0
    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++;
        }
    }
Exemple #3
0
    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;
    }
Exemple #4
0
 public ScoreCard(string playerName, GameStateManager.PlayerAvailable player)
 {
     SetPlayerName(playerName);
 }