Example #1
0
        public Player BreakTie(Player gameWinner, Player player, int attempts = 1)
        {
            Player winner        = gameWinner;
            int    winnerHandSum = gameWinner.HandSum;
            int    playerHandSum = player.HandSum;

            if (attempts > 4)
            {
                throw new ApplicationException("Tie breaks can only be done with a hand of 5.");
            }

            if (gameWinner.HandValue < player.HandValue)
            {
                winner = player;
            }

            if (winnerHandSum == playerHandSum)
            {
                GameWinners.Add(player);
                return(winner);
            }

            if (gameWinner.HandValue == player.HandValue && attempts < 4)
            {
                gameWinner.HandValue = CheckHandValue(gameWinner, attempts);
                player.HandValue     = CheckHandValue(player, attempts);
                BreakTie(gameWinner, player, attempts + 1);
            }

            return(winner);
        }
Example #2
0
 public void Reset()
 {
     CoinEntityID    = null;
     CurrentGameStep = null;
     EntityControllers.Clear();
     EntityMappings.Clear();
     GameLosers.Clear();
     GameWinners.Clear();
     PlayerHeroCards.Clear();
     PlayerID = null;
     PlayerNames.Clear();
 }
Example #3
0
        public override string ToString()
        {
            string gameResults = "\n";

            for (int i = 0; i < GamePlayers.Count(); i++)
            {
                gameResults += String.Format("{0}\n\n", GamePlayers[i].ToString());
            }
            if (GameWinners.Count() > 1)
            {
                for (int i = 1; i < GamePlayers.Count(); i++)
                {
                    gameResults += String.Format("{0},", GameWinners[i]);
                }
                gameResults += String.Format("{0} split the pot!", GameWinners[0].Name);
            }

            gameResults += String.Format("{0} wins and takes the pot!", GameWinners[0].Name);

            return(gameResults);
        }
Example #4
0
        private void SetGameWinners()
        {
            foreach (Player player in GamePlayers)
            {
                player.HandName  = CheckHand(player);
                player.HandValue = CheckHandValue(player);
            }

            GameWinners.Add(GamePlayers[0]);

            for (int i = 1; i < GamePlayers.Count(); i++)
            {
                if ((int)GameWinners[0].HandName < (int)GamePlayers[i].HandName)
                {
                    GameWinners[0] = GamePlayers[i];
                }
                else if ((int)GameWinners[0].HandName == (int)GamePlayers[i].HandName)
                {
                    GameWinners[0] = BreakTie(GameWinners[0], GamePlayers[i]);
                }
            }
        }
Example #5
0
        private void NotifyHandler(Action <ResponseModel> d, LongPollResponse.EventsInfo e)
        {
            switch (e.Type)
            {
            case "sq_ed_game":
            {
                d.Invoke(new ResponseModel());
                break;
            }

            case "sq_question":
            {
                var q = new Question
                {
                    Id      = e.Question.Id,
                    Text    = e.Question.Text,
                    Time    = e.UnixQuestionTime,
                    Answers = e.Question.Answers_q
                };
                d.Invoke(q);
                break;
            }

            case "sq_game_winners":
            {
                var gw = new GameWinners
                {
                    Users        = e.Users,
                    Prize        = e.Prize,
                    CountWinners = e.CountWinners
                };
                d.Invoke(gw);
                break;
            }

            case "sq_friend_answer":
            {
                var fa = new FriendAnswer
                {
                    AnswerFriendId = e.AnswerFriendId,
                    PhotoFriendUrl = e.PhotoFriendUrl,
                    IsLiveEnabled  = e.IsLiveEnabled
                };
                d.Invoke(fa);
                break;
            }

            case "sq_question_answers_right":
            {
                var ra = new RightAnswer
                {
                    Id            = e.Question.Id,
                    Text          = e.Question.Text,
                    Time          = e.UnixQuestionTime,
                    Answers       = e.Question.Answers,
                    RightAnswerId = e.Question.RightAnswerId,
                    UnixSentTime  = e.Question.UnixSentTime
                };
                d.Invoke(ra);
                break;
            }

            case "video_comment_new":
            {
                var vcn = new VideoComment
                {
                    Comment = e.Comment,
                    User    = e.User
                };
                d.Invoke(vcn);
                break;
            }
            }
        }