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); }
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); }