public void UpdateOuts(OutsCollection outs) { UpdatePairOuts(outs.Pair ?? _noOuts); UpdateTwoPairOuts(outs.TwoPair ?? _noOuts); UpdateThreeOfAKindOuts(outs.ThreeOfAKind ?? _noOuts); UpdateStraightOuts(outs.Straight ?? _noOuts); UpdateFlushOuts(outs.Flush ?? _noOuts); UpdateFullHouse(outs.FullHouse ?? _noOuts); UpdateFourOfAKindOuts(outs.FourOfAKind ?? _noOuts); UpdateStraightFlushOuts(outs.StraightFlush ?? _noOuts); UpdateRoyalFlushOuts(outs.RoyalFlush ?? _noOuts); }
private void HandleTurn() { try { GameState = PokerGameState.Turn; ClearOutsEvent?.Invoke(); PokerScore = PokerEvaluator.CalculateTurnScore(CurrentRound.AllCards.Values.ToList().GetRange(0, 6)); Outs = PokerOutsCalculator.CalculateRiverOuts( new SixCardHand(CurrentRound.AllCards.Values.ToList().GetRange(0, 6)), PokerScore); UpdateOutsEvent?.Invoke(Outs); UpdateCurrentScoreEvent?.Invoke(PokerScore); UpdateBestPossibleEvent?.Invoke(Outs.BestScore()); UpdateBestChanceEvent?.Invoke(Outs.BestPossible()); UpdateOutsToBestEvent?.Invoke(Outs.BestPossible()); } catch (Exception e) { Log.Error(e.Message); Log.Error(e.StackTrace); } }