private static List <PlayerstatisticExtended> FilterByRiverTextureCondition(List <PlayerstatisticExtended> playerStatistics, NoteSettingsObject settings) { if (!settings.RiverTextureSettings.IsFlushCardFilter && !settings.RiverTextureSettings.IsPossibleStraightsFilter && !settings.RiverTextureSettings.IsHighcardFilter && !settings.RiverTextureSettings.IsCardTextureFilter && !settings.RiverTextureSettings.IsPairedFilter) { return(playerStatistics); } List <PlayerstatisticExtended> fileteredList = new List <PlayerstatisticExtended>(); foreach (var playerstatistic in playerStatistics) { //filters for river flush if (settings.RiverTextureSettings.IsFlushCardFilter) { //filter for no possible flush if (settings.RiverTextureSettings.FlushCard == RiverFlushCardsEnum.NoFlush && !new NoPossibleFlushTextureAnalyzer().Analyze(playerstatistic.Playerstatistic.Board, Street.River)) { continue; } //filter for three of one suit if (settings.RiverTextureSettings.FlushCard == RiverFlushCardsEnum.ThreeCardsOneSuit && !new ThreeOfOneSuitFlushTextureAnalyzer().Analyze(playerstatistic.Playerstatistic.Board, Street.River)) { continue; } //filter for four of one suit if (settings.RiverTextureSettings.FlushCard == RiverFlushCardsEnum.FourCardsOneSuit && !new FourOfOneSuitFlushTextureAnalyzer().Analyze(playerstatistic.Playerstatistic.Board, Street.River)) { continue; } //filter for five of one suit if (settings.RiverTextureSettings.FlushCard == RiverFlushCardsEnum.FiveCardsOneSuit && !new FiveOfOneSuitFlushTextureAnalyzer().Analyze(playerstatistic.Playerstatistic.Board, Street.River)) { continue; } } //filter for possible straights and according < > or == if (settings.RiverTextureSettings.IsPossibleStraightsFilter) { if (!BoardTextureAnalyzerHelpers.CheckEquality(settings.RiverTextureSettings.PossibleStraightsCompare, new PossibleStraightTextureAnalyzer().Analyze(playerstatistic.Playerstatistic.Board, Street.River), settings.RiverTextureSettings.PossibleStraights)) { continue; } } //filter for the highest card if (settings.RiverTextureSettings.IsHighcardFilter) { if (BoardTextureAnalyzerHelpers.HighestBoardCardRank(playerstatistic.Playerstatistic.Board, Street.River) != DataTypes.Card.GetCardRank(settings.RiverTextureSettings.HighestCard)) { continue; } } //filter for exact river texture if (settings.RiverTextureSettings.IsCardTextureFilter) { if (!BoardTextureAnalyzerHelpers.BoardContainsExactTextureCards(playerstatistic.Playerstatistic.Board, settings.RiverTextureSettings.SelectedCardTextureList, Street.River)) { continue; } } //filter for river is Paired if (settings.RiverTextureSettings.IsPairedFilter) { if (!BoardTextureAnalyzerHelpers.BoardContainsAPair(playerstatistic.Playerstatistic.Board, Street.River)) { continue; } } fileteredList.Add(playerstatistic); } return(fileteredList); }
private static List <PlayerstatisticExtended> FilterByTurnTextureCondition(List <PlayerstatisticExtended> playerStatistics, NoteSettingsObject settings) { if (!settings.TurnTextureSettings.IsFlushCardFilter && !settings.TurnTextureSettings.IsOpenEndedStraightDrawsFilter && !settings.TurnTextureSettings.IsPossibleStraightsFilter && !settings.TurnTextureSettings.IsGutshotsFilter && !settings.TurnTextureSettings.IsHighcardFilter && !settings.TurnTextureSettings.IsCardTextureFilter && !settings.TurnTextureSettings.IsPairedFilter) { return(playerStatistics); } List <PlayerstatisticExtended> fileteredList = new List <PlayerstatisticExtended>(); foreach (var playerstatistic in playerStatistics) { //filters for turn flush if (settings.TurnTextureSettings.IsFlushCardFilter) { //filter for rainbow flush if (settings.TurnTextureSettings.FlushCard == TurnFlushCardsEnum.Rainbow && !new NoPossibleFlushTextureAnalyzer().Analyze(playerstatistic.Playerstatistic.Board, Street.Turn)) { continue; } //filter for two of two suits if (settings.TurnTextureSettings.FlushCard == TurnFlushCardsEnum.TwoOfTwoSuits && !new TwoOfTwoSuitFlushTextureAnalyzer().Analyze(playerstatistic.Playerstatistic.Board, Street.Turn)) { continue; } //filter for two of one suit if (settings.TurnTextureSettings.FlushCard == TurnFlushCardsEnum.TwoOfOneSuit && !new TwoOfOneSuitFlushTextureAnalyzer().Analyze(playerstatistic.Playerstatistic.Board, Street.Turn)) { continue; } //filter for three of one suit if (settings.TurnTextureSettings.FlushCard == TurnFlushCardsEnum.ThreeOfOneSuit && !new ThreeOfOneSuitFlushTextureAnalyzer().Analyze(playerstatistic.Playerstatistic.Board, Street.Turn)) { continue; } //filter for four of one suit if (settings.TurnTextureSettings.FlushCard == TurnFlushCardsEnum.FourOfOneSuit && !new FourOfOneSuitFlushTextureAnalyzer().Analyze(playerstatistic.Playerstatistic.Board, Street.Turn)) { continue; } } //filter for open-ended straights //if number of open ended straigths is not equal to the number we need, then we skip such playerstatistic if (settings.TurnTextureSettings.IsOpenEndedStraightDrawsFilter) { if (new OpenEndedStraightTextureAnalyzer().Analyze(playerstatistic.Playerstatistic.Board, Street.Turn) != settings.TurnTextureSettings.OpenEndedStraightDraws) { continue; } } //filter for possible straights and according < > or == if (settings.TurnTextureSettings.IsPossibleStraightsFilter) { if (!BoardTextureAnalyzerHelpers.CheckEquality(settings.TurnTextureSettings.PossibleStraightsCompare, new PossibleStraightTextureAnalyzer().Analyze(playerstatistic.Playerstatistic.Board, Street.Turn), settings.TurnTextureSettings.PossibleStraights)) { continue; } } //filter for gutshot straights if (settings.TurnTextureSettings.IsGutshotsFilter) { if (new GutShotBeatNutsTextureAnalyzer().Analyze(playerstatistic.Playerstatistic.Board, Street.Turn) != settings.TurnTextureSettings.Gutshots) { continue; } } //filter for the highest card if (settings.TurnTextureSettings.IsHighcardFilter) { if (BoardTextureAnalyzerHelpers.HighestBoardCardRank(playerstatistic.Playerstatistic.Board, Street.Turn) != DataTypes.Card.GetCardRank(settings.TurnTextureSettings.HighestCard)) { continue; } } //filter for exact turn texture if (settings.TurnTextureSettings.IsCardTextureFilter) { if (!BoardTextureAnalyzerHelpers.BoardContainsExactTextureCards(playerstatistic.Playerstatistic.Board, settings.TurnTextureSettings.SelectedCardTextureList, Street.Turn)) { continue; } } //filter for Turn is Paired if (settings.TurnTextureSettings.IsPairedFilter) { if (!BoardTextureAnalyzerHelpers.BoardContainsAPair(playerstatistic.Playerstatistic.Board, Street.Turn)) { continue; } } fileteredList.Add(playerstatistic); } return(fileteredList); }