public static void GetWinnerByHighestCard(Game game) { int p1HandValue = 0; int p2HandValue = 0; List <Card> p1Cards = game.Player1.HandPlayed.Cards; List <Card> p2Cards = game.Player2.HandPlayed.Cards; p1HandValue = CardUtilities.GetTotalHandValue(p1Cards); p2HandValue = CardUtilities.GetTotalHandValue(p2Cards); if (p1HandValue > p2HandValue) { game.Player1.IsWinner = true; } else if (p2HandValue > p1HandValue) { game.Player2.IsWinner = true; } else { Player winner = FindPlayerWithHighestCard(game.Player1, game.Player2); if (winner == game.Player1) { game.Player1.IsWinner = true; } else { game.Player2.IsWinner = true; } } }
private bool IsRoyalFlush(List <Card> cards, out List <Card> returnCards) { bool result = false; // get sequence of 5 consecutive cards if it exists returnCards = CardUtilities.GetConsecutiveValues(cards); if (returnCards.Count == 5 && CardUtilities.GetTotalHandValue(returnCards) == 60) { var suits = returnCards.Select(x => x.Suit).Distinct().ToArray(); if (suits.Length == 1) { result = true; } } return(result); }