示例#1
0
        private Func <Card, Card, Tuple <SuitHandGradeEnum, int> > GetTurnGridGrader(TurnBoard turnBoard)
        {
            switch (turnBoard.SuitTexture)
            {
            case TurnBoardSuitTextureEnum.SuitedFour:
                return((c1, c2) =>
                {
                    var tuple = new SuitedFourTexture(turnBoard).TestGridAgainstTurnBoard(c1, c2);
                    return new Tuple <SuitHandGradeEnum, int>(tuple.Item1.Grade(), tuple.Item2);
                });

            case TurnBoardSuitTextureEnum.SuitedThree:
                return((c1, c2) =>
                {
                    var tuple = new SuitedThreeTexture(turnBoard).TestGridAgainstTurnBoard(c1, c2);
                    return new Tuple <SuitHandGradeEnum, int>(tuple.Item1.Grade(), tuple.Item2);
                });

            case TurnBoardSuitTextureEnum.SuitedTwoPairs:
                return((c1, c2) =>
                {
                    var tuple = new SuitedTwoPairsTexture(turnBoard).TestGridAgainstTurnBoard(c1, c2);
                    return new Tuple <SuitHandGradeEnum, int>(tuple.Item1.Grade(), tuple.Item2);
                });

            case TurnBoardSuitTextureEnum.SuitedTwo:
                return((c1, c2) =>
                {
                    var tuple = new SuitedTwoTexture(turnBoard).TestGridAgainstTurnBoard(c1, c2);
                    return new Tuple <SuitHandGradeEnum, int>(tuple.Item1.Grade(), tuple.Item2);
                });

            case TurnBoardSuitTextureEnum.Offsuit:
                return((c1, c2) =>
                {
                    var tuple = new OffsuitTexture(turnBoard).TestGridAgainstTurnBoard(c1, c2);
                    return new Tuple <SuitHandGradeEnum, int>(tuple.Item1.Grade(), tuple.Item2);
                });

            default:
                throw new InvalidOperationException();
            }
        }
示例#2
0
        private void SetupSuitTexture()
        {
            switch (TurnBoard.SuitTexture)
            {
            case TurnBoardSuitTextureEnum.SuitedFour:
                var suitedFour = new SuitedFourTexture(TurnBoard);
                if (River.Suit == suitedFour.SuitedSuit)
                {
                    SuitTexture = RiverSuitTextureEnum.FiveSuited;
                }
                else
                {
                    SuitTexture = RiverSuitTextureEnum.FourSuited;
                }
                break;

            case TurnBoardSuitTextureEnum.SuitedThree:
                var suitedThree = new SuitedThreeTexture(TurnBoard);
                if (River.Suit == suitedThree.SuitedSuit)
                {
                    SuitTexture = RiverSuitTextureEnum.FourSuited;
                }
                else
                {
                    SuitTexture = RiverSuitTextureEnum.ThreeSuited;
                }
                break;

            case TurnBoardSuitTextureEnum.SuitedTwoPairs:
                var suitedTwoPairs = new SuitedTwoPairsTexture(TurnBoard);
                if (River.Suit == suitedTwoPairs.SuitedSuit1)
                {
                    SuitTexture = RiverSuitTextureEnum.ThreeSuited;
                }
                else if (River.Suit == suitedTwoPairs.SuitedSuit2)
                {
                    SuitTexture = RiverSuitTextureEnum.ThreeSuited;
                }
                else
                {
                    SuitTexture = RiverSuitTextureEnum.Offsuit;
                }
                break;

            case TurnBoardSuitTextureEnum.SuitedTwo:
                var suitedTwo = new SuitedTwoTexture(TurnBoard);
                if (River.Suit == suitedTwo.SuitedSuit)
                {
                    SuitTexture = RiverSuitTextureEnum.ThreeSuited;
                }
                else
                {
                    SuitTexture = RiverSuitTextureEnum.Offsuit;
                }
                break;

            case TurnBoardSuitTextureEnum.Offsuit:
                SuitTexture = RiverSuitTextureEnum.Offsuit;
                break;

            default:
                throw new InvalidOperationException();
            }
        }