public static int? CreateRank(RequestStructure.GameState gameState,Hand hand) { var isFirstRound = !gameState.CommunityCards.Any(); if (isFirstRound) { return (int)((FirstRound(gameState)) * 1.3); } return (int)hand; return null; }
private static int FirstRound(RequestStructure.GameState gameState) { var cards = gameState.OurPlayer.HoleCards; var firstCard = cards.First(); var secondCard = cards.Last(); var firstCardRank = firstCard.Rank; var secondCardRank = secondCard.Rank; var firstCardSuit = firstCard.Suit; var secondCardSuit = secondCard.Suit; var numberRank = 0; if (int.TryParse(firstCardRank, out numberRank)) { firstCardRank = ((NumberToString)numberRank).ToString(); } if (int.TryParse(secondCardRank, out numberRank)) { secondCardRank = ((NumberToString)numberRank).ToString(); } var isPair = firstCardRank == secondCardRank; var areSameSuit = firstCardSuit == secondCardSuit; var rank = firstCardRank + secondCardRank; rank = isPair ? rank : rank + (areSameSuit ? "s" : "o"); var rankValue = 0; try { rankValue = (int)Enum.Parse(typeof(StartingHandRanking), rank); } catch (Exception ex) { rank = secondCardRank + firstCardRank; rank = isPair ? rank : rank + (areSameSuit ? "s" : "o"); rankValue = (int)Enum.Parse(typeof(StartingHandRanking), rank); } return rankValue; }
public static Hand CheckCardsOnHand(RequestStructure.GameState gameState) { var cards = gameState.OurCards.Concat(gameState.CommunityCards).ToList(); return CheckCardsOnHand(cards); }
private static int GetCurrentPosition(RequestStructure.GameState game) { var activePlayerCount = GetActivePlayerCount(game); var dealerId = Convert.ToInt32(game.Dealer); if (game.OurPlayer.Id == dealerId) { return activePlayerCount; } if (game.OurPlayer.Id < dealerId) { var tmpPosition = activePlayerCount; for (int i = dealerId - 1; i != game.OurPlayer.Id && i > 0; i--) { if (i == game.OurPlayer.Id) return tmpPosition; if (game.Players[i].Status == RequestStructure.PlayerStatus.Active) tmpPosition -= 1; } return tmpPosition; } else { var tmpPosition = 1; for (int i = dealerId + 1; i < game.Players.Count; i++) { if(i == game.OurPlayer.Id) return tmpPosition; if (game.Players[i].Status == RequestStructure.PlayerStatus.Active) tmpPosition += 1; } return tmpPosition; } }
private static int GetAllInPlayersCount(RequestStructure.GameState game) { return game.Players.Count(p => p.Stack == p.Bet); }
private static int GetActivePlayerCount(RequestStructure.GameState game) { return game.Players.Count(p => p.Status == RequestStructure.PlayerStatus.Active); }
private static int GetMaxBet(RequestStructure.GameState game) { var maxBet = game.Players.Max(p => (int) p.Bet); return maxBet; }