Beispiel #1
0
        public PairedStatus <GridHitNewRoundResultEnum> TestPairedGrid(RangeGrid grid)
        {
            if (grid.Category != GridCategoryEnum.Paired)
            {
                throw new InvalidOperationException();
            }
            var  result = new PairedStatus <GridHitNewRoundResultEnum>();
            Card hole1, hole2;
            Tuple <SuitHandGradeEnum, int> currentTuple, 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.HighRank);
                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.HighRank);
                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.HighRank);
                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.HighRank);
                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.HighRank);
                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.HighRank);
                currentTuple             = _currentRoundTest(hole1, hole2);
                previousTuple            = _previousRoundTest(hole1, hole2);
                result.DiamondClubStatus = TranslateOutcomeToGridStatus(currentTuple.Item1, currentTuple.Item2, previousTuple.Item1, previousTuple.Item2);
            }
            else
            {
                result.DiamondClubStatus = GridHitNewRoundResultEnum.Unavailable;
            }

            return(result);
        }
Beispiel #2
0
        public PairedStatus <BoardRangeGridStatusEnum> TestPairedGrid(RangeGrid grid)
        {
            if (grid.Category != GridCategoryEnum.Paired)
            {
                throw new InvalidOperationException();
            }
            var  result = new PairedStatus <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.HighRank);
                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.HighRank);
                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.HighRank);
                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.HighRank);
                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.HighRank);
                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.HighRank);
                result.DiamondClubStatus = TranslateOutcomeToGridStatus(TestGridAgainstBoard(hole1, hole2).Item1);
            }
            else
            {
                result.DiamondClubStatus = BoardRangeGridStatusEnum.Unavailable;
            }

            return(result);
        }