private Func <Card, Card, Tuple <SuitHandGradeEnum, int> > GetFlopGridGrader(FlopBoard flopBoard) { switch (flopBoard.SuitTexture) { case FlopBoardSuitTextureEnum.SuitedThree: return((c1, c2) => { var tuple = new SuitedThreeSuitTexture(flopBoard).TestGridAgainstBoard(c1, c2); return new Tuple <SuitHandGradeEnum, int>(tuple.Item1.Grade(), tuple.Item2); }); case FlopBoardSuitTextureEnum.SuitedTwo: return((c1, c2) => { var tuple = new SuitedTwoSuitTexture(flopBoard).TestGridAgainstBoard(c1, c2); return new Tuple <SuitHandGradeEnum, int>(tuple.Item1.Grade(), tuple.Item2); }); case FlopBoardSuitTextureEnum.Rainbow: return((c1, c2) => { var tuple = new RainbowSuitTexture().TestGridAgainstBoard(c1, c2); return new Tuple <SuitHandGradeEnum, int>(tuple.Item1.Grade(), tuple.Item2); }); default: throw new InvalidOperationException(); } }
private void SetSuitTexture() { switch (FlopBoard.SuitTexture) { case FlopBoardSuitTextureEnum.SuitedThree: SuitTexture = TurnCard.Suit == FlopBoard.Flop1.Suit ? TurnBoardSuitTextureEnum.SuitedFour : TurnBoardSuitTextureEnum.SuitedThree; break; case FlopBoardSuitTextureEnum.SuitedTwo: var suitedTwoBoard = new SuitedTwoSuitTexture(FlopBoard); if (TurnCard.Suit == suitedTwoBoard.SuitedCard1.Suit) { SuitTexture = TurnBoardSuitTextureEnum.SuitedThree; } else if (TurnCard.Suit == suitedTwoBoard.OffsuitCard.Suit) { SuitTexture = TurnBoardSuitTextureEnum.SuitedTwoPairs; } else { SuitTexture = TurnBoardSuitTextureEnum.SuitedTwo; } break; case FlopBoardSuitTextureEnum.Rainbow: if (TurnCard.Suit == FlopBoard.Flop1.Suit || TurnCard.Suit == FlopBoard.Flop2.Suit || TurnCard.Suit == FlopBoard.Flop3.Suit) { SuitTexture = TurnBoardSuitTextureEnum.SuitedTwo; } else { SuitTexture = TurnBoardSuitTextureEnum.Offsuit; } break; default: throw new InvalidOperationException(); } }