Esempio n. 1
0
        public Player DecideValuableCardThrowingPlayer()
        {
            NumberOfPlayingCards++;
            DeckOfCard deckOfCard   = new DeckOfCard();
            Card       valuableCard = deckOfCard.GetCardById(IdListOfThrowingCard[0]);
            int        boardPoint   = valuableCard.Value;

            for (int i = 1; i < 4; i++)
            {
                Card tempCard = deckOfCard.GetCardById(IdListOfThrowingCard[i]);
                boardPoint += tempCard.Value;

                if (_isTrumpShow)
                {
                    if (tempCard.Suit == _trumpType)
                    {
                        if (valuableCard.Suit != _trumpType || tempCard.PriorityValue > valuableCard.PriorityValue)
                        {
                            valuableCard = tempCard;
                        }
                    }
                    else
                    {
                        if (valuableCard.Suit == tempCard.Suit && tempCard.PriorityValue > valuableCard.PriorityValue)
                        {
                            valuableCard = tempCard;
                        }
                    }
                }
                else
                {
                    if (valuableCard.Suit == tempCard.Suit && tempCard.PriorityValue > valuableCard.PriorityValue)
                    {
                        valuableCard = tempCard;
                    }
                }
            }

            Player valuablePlayer = GetPlayerByCard(valuableCard);

            SetBoardPointOfValuableCardThrowingTeam(valuablePlayer, boardPoint);
            IdListOfThrowingCard.Clear();
            MakeConnectionIdListOfCardThrowingPlayer(valuablePlayer);

            if (NumberOfPlayingCards == 8)
            {
                SetGamePoint();
            }

            return(valuablePlayer);
        }
Esempio n. 2
0
        public void ShowPlayingCard(int cardId)
        {
            Game.IdListOfThrowingCard.Add(cardId);
            Card card = DeckOfCard.GetCardById(cardId);

            Clients.All.broadcastPlayingCard(card.ImagePath);

            if (Game.ConnectionIdListOfCardThrowingPlayer.Count != 0)
            {
                Clients.Client(Game.GetConnectionIdOfNextCardThrowingPlayer()).messageToThrowCard();
            }

            else
            {
                Clients.All.removeThrowingCard();
                Player player = Game.DecideValuableCardThrowingPlayer();
                Clients.Client(player.ConnectionId).messageOfBoardWinner(Game.NumberOfPlayingCards == 8);
                if (Game.NumberOfPlayingCards == 8)
                {
                    Game.NumberOfPlayingCards = 0;
                    if (Game.IsGameOver())
                    {
                        Team winningTeam = Game.GetWinningTeam();

                        for (int i = 0; i < 4; i++)
                        {
                            Player tempPlayer = Game.GetPlayer(i);

                            if (tempPlayer.ConnectionId == winningTeam.players[0].ConnectionId ||
                                tempPlayer.ConnectionId == winningTeam.players[0].ConnectionId)
                            {
                                Clients.Client(tempPlayer.ConnectionId).winningMessage(true);
                            }

                            else
                            {
                                Clients.Client(tempPlayer.ConnectionId).winningMessage(false);
                            }
                        }
                    }
                    else
                    {
                        StartPlay();
                    }
                }
            }
        }