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); }
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(); } } } }