Exemplo n.º 1
0
        public OffsuitStatus <GridHitNewRoundResultEnum> TestOffsuitGrid(RangeGrid grid)
        {
            if (grid.Category != GridCategoryEnum.Offsuit)
            {
                throw new InvalidOperationException();
            }
            var  result = new OffsuitStatus <GridHitNewRoundResultEnum>();
            Card hole1;
            Card hole2;
            Tuple <SuitHandGradeEnum, int> currentTuple;
            Tuple <SuitHandGradeEnum, int> previousTuple;

            if (grid.Card1AvaliableSuits.Contains(SuitEnum.Heart) && grid.Card2AvaliableSuits.Contains(SuitEnum.Spade))
            {
                hole1                   = new Card(SuitEnum.Heart, grid.HighRank);
                hole2                   = new Card(SuitEnum.Spade, grid.LowRank);
                currentTuple            = _currentRoundTest(hole1, hole2);
                previousTuple           = _previousRoundTest(hole1, hole2);
                result.HeartSpadeStatus = TranslateOutcomeToGridStatus(currentTuple.Item1, currentTuple.Item2, previousTuple.Item1, previousTuple.Item2);
            }
            else
            {
                result.HeartSpadeStatus = GridHitNewRoundResultEnum.Unavailable;
            }

            if (grid.Card1AvaliableSuits.Contains(SuitEnum.Heart) && grid.Card2AvaliableSuits.Contains(SuitEnum.Diamond))
            {
                hole1                     = new Card(SuitEnum.Heart, grid.HighRank);
                hole2                     = new Card(SuitEnum.Diamond, grid.LowRank);
                currentTuple              = _currentRoundTest(hole1, hole2);
                previousTuple             = _previousRoundTest(hole1, hole2);
                result.HeartDiamondStatus = TranslateOutcomeToGridStatus(currentTuple.Item1, currentTuple.Item2, previousTuple.Item1, previousTuple.Item2);
            }
            else
            {
                result.HeartDiamondStatus = GridHitNewRoundResultEnum.Unavailable;
            }

            if (grid.Card1AvaliableSuits.Contains(SuitEnum.Heart) && grid.Card2AvaliableSuits.Contains(SuitEnum.Club))
            {
                hole1                  = new Card(SuitEnum.Heart, grid.HighRank);
                hole2                  = new Card(SuitEnum.Club, grid.LowRank);
                currentTuple           = _currentRoundTest(hole1, hole2);
                previousTuple          = _previousRoundTest(hole1, hole2);
                result.HeartClubStatus = TranslateOutcomeToGridStatus(currentTuple.Item1, currentTuple.Item2, previousTuple.Item1, previousTuple.Item2);
            }
            else
            {
                result.HeartClubStatus = GridHitNewRoundResultEnum.Unavailable;
            }

            if (grid.Card1AvaliableSuits.Contains(SuitEnum.Spade) && grid.Card2AvaliableSuits.Contains(SuitEnum.Diamond))
            {
                hole1                     = new Card(SuitEnum.Spade, grid.HighRank);
                hole2                     = new Card(SuitEnum.Diamond, grid.LowRank);
                currentTuple              = _currentRoundTest(hole1, hole2);
                previousTuple             = _previousRoundTest(hole1, hole2);
                result.SpadeDiamondStatus = TranslateOutcomeToGridStatus(currentTuple.Item1, currentTuple.Item2, previousTuple.Item1, previousTuple.Item2);
            }
            else
            {
                result.SpadeDiamondStatus = GridHitNewRoundResultEnum.Unavailable;
            }

            if (grid.Card1AvaliableSuits.Contains(SuitEnum.Spade) && grid.Card2AvaliableSuits.Contains(SuitEnum.Club))
            {
                hole1                  = new Card(SuitEnum.Spade, grid.HighRank);
                hole2                  = new Card(SuitEnum.Club, grid.LowRank);
                currentTuple           = _currentRoundTest(hole1, hole2);
                previousTuple          = _previousRoundTest(hole1, hole2);
                result.SpadeClubStatus = TranslateOutcomeToGridStatus(currentTuple.Item1, currentTuple.Item2, previousTuple.Item1, previousTuple.Item2);
            }
            else
            {
                result.SpadeClubStatus = GridHitNewRoundResultEnum.Unavailable;
            }

            if (grid.Card1AvaliableSuits.Contains(SuitEnum.Diamond) && grid.Card2AvaliableSuits.Contains(SuitEnum.Club))
            {
                hole1                    = new Card(SuitEnum.Diamond, grid.HighRank);
                hole2                    = new Card(SuitEnum.Club, grid.LowRank);
                currentTuple             = _currentRoundTest(hole1, hole2);
                previousTuple            = _previousRoundTest(hole1, hole2);
                result.DiamondClubStatus = TranslateOutcomeToGridStatus(currentTuple.Item1, currentTuple.Item2, previousTuple.Item1, previousTuple.Item2);
            }
            else
            {
                result.DiamondClubStatus = GridHitNewRoundResultEnum.Unavailable;
            }

            if (grid.Card1AvaliableSuits.Contains(SuitEnum.Spade) && grid.Card2AvaliableSuits.Contains(SuitEnum.Heart))
            {
                hole1                   = new Card(SuitEnum.Spade, grid.HighRank);
                hole2                   = new Card(SuitEnum.Heart, grid.LowRank);
                currentTuple            = _currentRoundTest(hole1, hole2);
                previousTuple           = _previousRoundTest(hole1, hole2);
                result.SpadeHeartStatus = TranslateOutcomeToGridStatus(currentTuple.Item1, currentTuple.Item2, previousTuple.Item1, previousTuple.Item2);
            }
            else
            {
                result.SpadeHeartStatus = GridHitNewRoundResultEnum.Unavailable;
            }

            if (grid.Card1AvaliableSuits.Contains(SuitEnum.Diamond) && grid.Card2AvaliableSuits.Contains(SuitEnum.Heart))
            {
                hole1                     = new Card(SuitEnum.Diamond, grid.HighRank);
                hole2                     = new Card(SuitEnum.Heart, grid.LowRank);
                currentTuple              = _currentRoundTest(hole1, hole2);
                previousTuple             = _previousRoundTest(hole1, hole2);
                result.DiamondHeartStatus = TranslateOutcomeToGridStatus(currentTuple.Item1, currentTuple.Item2, previousTuple.Item1, previousTuple.Item2);
            }
            else
            {
                result.DiamondHeartStatus = GridHitNewRoundResultEnum.Unavailable;
            }

            if (grid.Card1AvaliableSuits.Contains(SuitEnum.Club) && grid.Card2AvaliableSuits.Contains(SuitEnum.Heart))
            {
                hole1                  = new Card(SuitEnum.Club, grid.HighRank);
                hole2                  = new Card(SuitEnum.Heart, grid.LowRank);
                currentTuple           = _currentRoundTest(hole1, hole2);
                previousTuple          = _previousRoundTest(hole1, hole2);
                result.ClubHeartStatus = TranslateOutcomeToGridStatus(currentTuple.Item1, currentTuple.Item2, previousTuple.Item1, previousTuple.Item2);
            }
            else
            {
                result.ClubHeartStatus = GridHitNewRoundResultEnum.Unavailable;
            }

            if (grid.Card1AvaliableSuits.Contains(SuitEnum.Diamond) && grid.Card2AvaliableSuits.Contains(SuitEnum.Spade))
            {
                hole1                     = new Card(SuitEnum.Diamond, grid.HighRank);
                hole2                     = new Card(SuitEnum.Spade, grid.LowRank);
                currentTuple              = _currentRoundTest(hole1, hole2);
                previousTuple             = _previousRoundTest(hole1, hole2);
                result.DiamondSpadeStatus = TranslateOutcomeToGridStatus(currentTuple.Item1, currentTuple.Item2, previousTuple.Item1, previousTuple.Item2);
            }
            else
            {
                result.DiamondSpadeStatus = GridHitNewRoundResultEnum.Unavailable;
            }

            if (grid.Card1AvaliableSuits.Contains(SuitEnum.Club) && grid.Card2AvaliableSuits.Contains(SuitEnum.Spade))
            {
                hole1                  = new Card(SuitEnum.Club, grid.HighRank);
                hole2                  = new Card(SuitEnum.Spade, grid.LowRank);
                currentTuple           = _currentRoundTest(hole1, hole2);
                previousTuple          = _previousRoundTest(hole1, hole2);
                result.ClubSpadeStatus = TranslateOutcomeToGridStatus(currentTuple.Item1, currentTuple.Item2, previousTuple.Item1, previousTuple.Item2);
            }
            else
            {
                result.ClubSpadeStatus = GridHitNewRoundResultEnum.Unavailable;
            }

            if (grid.Card1AvaliableSuits.Contains(SuitEnum.Club) && grid.Card2AvaliableSuits.Contains(SuitEnum.Diamond))
            {
                hole1                    = new Card(SuitEnum.Club, grid.HighRank);
                hole2                    = new Card(SuitEnum.Diamond, grid.LowRank);
                currentTuple             = _currentRoundTest(hole1, hole2);
                previousTuple            = _previousRoundTest(hole1, hole2);
                result.ClubDiamondStatus = TranslateOutcomeToGridStatus(currentTuple.Item1, currentTuple.Item2, previousTuple.Item1, previousTuple.Item2);
            }
            else
            {
                result.ClubDiamondStatus = GridHitNewRoundResultEnum.Unavailable;
            }

            return(result);
        }
Exemplo n.º 2
0
        public OffsuitStatus <BoardRangeGridStatusEnum> TestOffsuitGrid(RangeGrid grid)
        {
            if (grid.Category != GridCategoryEnum.Offsuit)
            {
                throw new InvalidOperationException();
            }
            var  result = new OffsuitStatus <BoardRangeGridStatusEnum>();
            Card hole1, hole2;

            if (grid.Card1AvaliableSuits.Contains(SuitEnum.Heart) && grid.Card2AvaliableSuits.Contains(SuitEnum.Spade))
            {
                hole1 = new Card(SuitEnum.Heart, grid.HighRank);
                hole2 = new Card(SuitEnum.Spade, grid.LowRank);
                result.HeartSpadeStatus = TranslateOutcomeToGridStatus(TestGridAgainstBoard(hole1, hole2).Item1);
            }
            else
            {
                result.HeartSpadeStatus = BoardRangeGridStatusEnum.Unavailable;
            }

            if (grid.Card1AvaliableSuits.Contains(SuitEnum.Heart) && grid.Card2AvaliableSuits.Contains(SuitEnum.Diamond))
            {
                hole1 = new Card(SuitEnum.Heart, grid.HighRank);
                hole2 = new Card(SuitEnum.Diamond, grid.LowRank);
                result.HeartDiamondStatus = TranslateOutcomeToGridStatus(TestGridAgainstBoard(hole1, hole2).Item1);
            }
            else
            {
                result.HeartDiamondStatus = BoardRangeGridStatusEnum.Unavailable;
            }

            if (grid.Card1AvaliableSuits.Contains(SuitEnum.Heart) && grid.Card2AvaliableSuits.Contains(SuitEnum.Club))
            {
                hole1 = new Card(SuitEnum.Heart, grid.HighRank);
                hole2 = new Card(SuitEnum.Club, grid.LowRank);
                result.HeartClubStatus = TranslateOutcomeToGridStatus(TestGridAgainstBoard(hole1, hole2).Item1);
            }
            else
            {
                result.HeartClubStatus = BoardRangeGridStatusEnum.Unavailable;
            }

            if (grid.Card1AvaliableSuits.Contains(SuitEnum.Spade) && grid.Card2AvaliableSuits.Contains(SuitEnum.Diamond))
            {
                hole1 = new Card(SuitEnum.Spade, grid.HighRank);
                hole2 = new Card(SuitEnum.Diamond, grid.LowRank);
                result.SpadeDiamondStatus = TranslateOutcomeToGridStatus(TestGridAgainstBoard(hole1, hole2).Item1);
            }
            else
            {
                result.SpadeDiamondStatus = BoardRangeGridStatusEnum.Unavailable;
            }

            if (grid.Card1AvaliableSuits.Contains(SuitEnum.Spade) && grid.Card2AvaliableSuits.Contains(SuitEnum.Club))
            {
                hole1 = new Card(SuitEnum.Spade, grid.HighRank);
                hole2 = new Card(SuitEnum.Club, grid.LowRank);
                result.SpadeClubStatus = TranslateOutcomeToGridStatus(TestGridAgainstBoard(hole1, hole2).Item1);
            }
            else
            {
                result.SpadeClubStatus = BoardRangeGridStatusEnum.Unavailable;
            }

            if (grid.Card1AvaliableSuits.Contains(SuitEnum.Diamond) && grid.Card2AvaliableSuits.Contains(SuitEnum.Club))
            {
                hole1 = new Card(SuitEnum.Diamond, grid.HighRank);
                hole2 = new Card(SuitEnum.Club, grid.LowRank);
                result.DiamondClubStatus = TranslateOutcomeToGridStatus(TestGridAgainstBoard(hole1, hole2).Item1);
            }
            else
            {
                result.DiamondClubStatus = BoardRangeGridStatusEnum.Unavailable;
            }

            if (grid.Card1AvaliableSuits.Contains(SuitEnum.Spade) && grid.Card2AvaliableSuits.Contains(SuitEnum.Heart))
            {
                hole1 = new Card(SuitEnum.Spade, grid.HighRank);
                hole2 = new Card(SuitEnum.Heart, grid.LowRank);
                result.SpadeHeartStatus = TranslateOutcomeToGridStatus(TestGridAgainstBoard(hole1, hole2).Item1);
            }
            else
            {
                result.SpadeHeartStatus = BoardRangeGridStatusEnum.Unavailable;
            }

            if (grid.Card1AvaliableSuits.Contains(SuitEnum.Diamond) && grid.Card2AvaliableSuits.Contains(SuitEnum.Heart))
            {
                hole1 = new Card(SuitEnum.Diamond, grid.HighRank);
                hole2 = new Card(SuitEnum.Heart, grid.LowRank);
                result.DiamondHeartStatus = TranslateOutcomeToGridStatus(TestGridAgainstBoard(hole1, hole2).Item1);
            }
            else
            {
                result.DiamondHeartStatus = BoardRangeGridStatusEnum.Unavailable;
            }

            if (grid.Card1AvaliableSuits.Contains(SuitEnum.Club) && grid.Card2AvaliableSuits.Contains(SuitEnum.Heart))
            {
                hole1 = new Card(SuitEnum.Club, grid.HighRank);
                hole2 = new Card(SuitEnum.Heart, grid.LowRank);
                result.ClubHeartStatus = TranslateOutcomeToGridStatus(TestGridAgainstBoard(hole1, hole2).Item1);
            }
            else
            {
                result.ClubHeartStatus = BoardRangeGridStatusEnum.Unavailable;
            }

            if (grid.Card1AvaliableSuits.Contains(SuitEnum.Diamond) && grid.Card2AvaliableSuits.Contains(SuitEnum.Spade))
            {
                hole1 = new Card(SuitEnum.Diamond, grid.HighRank);
                hole2 = new Card(SuitEnum.Spade, grid.LowRank);
                result.DiamondSpadeStatus = TranslateOutcomeToGridStatus(TestGridAgainstBoard(hole1, hole2).Item1);
            }
            else
            {
                result.DiamondSpadeStatus = BoardRangeGridStatusEnum.Unavailable;
            }

            if (grid.Card1AvaliableSuits.Contains(SuitEnum.Club) && grid.Card2AvaliableSuits.Contains(SuitEnum.Spade))
            {
                hole1 = new Card(SuitEnum.Club, grid.HighRank);
                hole2 = new Card(SuitEnum.Spade, grid.LowRank);
                result.ClubSpadeStatus = TranslateOutcomeToGridStatus(TestGridAgainstBoard(hole1, hole2).Item1);
            }
            else
            {
                result.ClubSpadeStatus = BoardRangeGridStatusEnum.Unavailable;
            }

            if (grid.Card1AvaliableSuits.Contains(SuitEnum.Club) && grid.Card2AvaliableSuits.Contains(SuitEnum.Diamond))
            {
                hole1 = new Card(SuitEnum.Club, grid.HighRank);
                hole2 = new Card(SuitEnum.Diamond, grid.LowRank);
                result.ClubDiamondStatus = TranslateOutcomeToGridStatus(TestGridAgainstBoard(hole1, hole2).Item1);
            }
            else
            {
                result.ClubDiamondStatus = BoardRangeGridStatusEnum.Unavailable;
            }

            return(result);
        }