示例#1
0
 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);
 }
示例#2
0
 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);
     }
 }