예제 #1
0
        public ThirdPairRankTexture(RiverBoard board)
        {
            TurnBoard = board.TurnBoard;
            switch (TurnBoard.RankTexture)
            {
            case TurnBoardRankTextureEnum.MiddlePair:
                var middlePairTexture = new MiddlePairRankTexture(TurnBoard);
                if (board.River.Rank <= middlePairTexture.PairCard1.Rank ||
                    board.River.Rank == middlePairTexture.HighCard.Rank)
                {
                    throw new InvalidOperationException();
                }
                if (board.River.Rank > middlePairTexture.HighCard.Rank)
                {
                    HighCard   = board.River;
                    SecondCard = middlePairTexture.HighCard;
                }
                else
                {
                    HighCard   = middlePairTexture.HighCard;
                    SecondCard = board.River;
                }
                PairedCard1 = middlePairTexture.PairCard1;
                PairedCard2 = middlePairTexture.PairCard2;
                LowCard     = middlePairTexture.LowCard;
                break;

            case TurnBoardRankTextureEnum.LowPair:
                var lowPairTexture = new Turn.TurnBoardRankTextures.LowPairRankTexture(TurnBoard);
                if (board.River.Rank >= lowPairTexture.PairCard1.Rank)
                {
                    throw new InvalidOperationException();
                }
                HighCard    = lowPairTexture.HighCard;
                SecondCard  = lowPairTexture.MiddleCard;
                PairedCard1 = lowPairTexture.PairCard1;
                PairedCard2 = lowPairTexture.PairCard2;
                LowCard     = board.River;
                break;

            case TurnBoardRankTextureEnum.Singles:
                var singlesTexture = new Turn.TurnBoardRankTextures.SinglesRankTexture(TurnBoard);
                if (board.River.Rank != singlesTexture.ThirdCard.Rank)
                {
                    throw new InvalidOperationException();
                }
                HighCard    = singlesTexture.HighCard;
                SecondCard  = singlesTexture.SecondCard;
                PairedCard1 = singlesTexture.ThirdCard;
                PairedCard2 = board.River;
                LowCard     = singlesTexture.LowCard;
                break;

            default:
                throw new InvalidOperationException();
            }
        }
예제 #2
0
        public HighTwoPairsRankTexture(RiverBoard board)
        {
            TurnBoard = board.TurnBoard;
            switch (TurnBoard.RankTexture)
            {
            case TurnBoardRankTextureEnum.TwoPairs:
                var twoPairTexture = new TwoPairsRankTexture(TurnBoard);
                if (board.River.Rank >= twoPairTexture.LowPairCard1.Rank)
                {
                    throw new InvalidOperationException();
                }
                HighPairCard1   = twoPairTexture.HighPairCard1;
                HighPairCard2   = twoPairTexture.HighPairCard2;
                MiddlePairCard1 = twoPairTexture.LowPairCard1;
                MiddlePairCard2 = twoPairTexture.LowPairCard2;
                LowCard         = board.River;
                break;

            case TurnBoardRankTextureEnum.HighPair:
                var highPairTexture = new Turn.TurnBoardRankTextures.HighPairRankTexture(TurnBoard);
                if (board.River.Rank != highPairTexture.MiddleCard.Rank)
                {
                    throw new InvalidOperationException();
                }
                HighPairCard1   = highPairTexture.PairCard1;
                HighPairCard2   = highPairTexture.PairCard2;
                MiddlePairCard1 = highPairTexture.MiddleCard;
                MiddlePairCard2 = board.River;
                LowCard         = highPairTexture.LowCard;
                break;

            case TurnBoardRankTextureEnum.MiddlePair:
                var middlePairTexture = new MiddlePairRankTexture(TurnBoard);
                if (board.River.Rank != middlePairTexture.HighCard.Rank)
                {
                    throw new InvalidOperationException();
                }
                HighPairCard1   = board.River;
                HighPairCard2   = middlePairTexture.HighCard;
                MiddlePairCard1 = middlePairTexture.PairCard1;
                MiddlePairCard2 = middlePairTexture.PairCard2;
                LowCard         = middlePairTexture.LowCard;
                break;

            default:
                throw new InvalidOperationException();
            }
        }
예제 #3
0
        public MiddleTriRankTexture(RiverBoard board)
        {
            TurnBoard = board.TurnBoard;
            switch (TurnBoard.RankTexture)
            {
            case TurnBoardRankTextureEnum.HighTri:
                var highTriTexture = new Turn.TurnBoardRankTextures.HighTriRankTexture(TurnBoard);
                if (board.River.Rank <= highTriTexture.TriCard1.Rank)
                {
                    throw new InvalidOperationException();
                }
                HighCard = board.River;
                TriCard1 = highTriTexture.TriCard1;
                TriCard2 = highTriTexture.TriCard2;
                TriCard3 = highTriTexture.TriCard3;
                LowCard  = highTriTexture.SingleCard;
                break;

            case TurnBoardRankTextureEnum.LowTri:
                var lowTriTexture = new Turn.TurnBoardRankTextures.LowTriRankTexture(TurnBoard);
                if (board.River.Rank >= lowTriTexture.TriCard1.Rank)
                {
                    throw new InvalidOperationException();
                }
                HighCard = lowTriTexture.SingleCard;
                TriCard1 = lowTriTexture.TriCard1;
                TriCard2 = lowTriTexture.TriCard2;
                TriCard3 = lowTriTexture.TriCard3;
                LowCard  = board.River;
                break;

            case TurnBoardRankTextureEnum.MiddlePair:
                var middlePairTexture = new MiddlePairRankTexture(TurnBoard);
                if (board.River.Rank != middlePairTexture.PairCard1.Rank)
                {
                    throw new InvalidOperationException();
                }
                HighCard = middlePairTexture.HighCard;
                TriCard1 = middlePairTexture.PairCard1;
                TriCard2 = middlePairTexture.PairCard2;
                TriCard3 = board.River;
                LowCard  = middlePairTexture.LowCard;
                break;

            default:
                throw new InvalidOperationException();
            }
        }
예제 #4
0
        private void SetupRankTexture()
        {
            switch (TurnBoard.RankTexture)
            {
            case TurnBoardRankTextureEnum.Foursome:
                RankTexture = RiverRankTextureEnum.Foursome;
                break;

            case TurnBoardRankTextureEnum.HighTri:
                var highTri = new HighTriRankTexture(TurnBoard);
                if (River.Rank == highTri.TriCard1.Rank)
                {
                    RankTexture = RiverRankTextureEnum.Foursome;
                }
                else if (River.Rank == highTri.SingleCard.Rank)
                {
                    RankTexture = RiverRankTextureEnum.HighTriLowPair;
                }
                else if (River.Rank > highTri.TriCard1.Rank)
                {
                    RankTexture = RiverRankTextureEnum.MiddleTri;
                }
                else
                {
                    RankTexture = RiverRankTextureEnum.HighTri;
                }
                break;

            case TurnBoardRankTextureEnum.LowTri:
                var lowTri = new LowTriRankTexture(TurnBoard);
                if (River.Rank == lowTri.TriCard1.Rank)
                {
                    RankTexture = RiverRankTextureEnum.Foursome;
                }
                else if (River.Rank == lowTri.SingleCard.Rank)
                {
                    RankTexture = RiverRankTextureEnum.LowTriHighPair;
                }
                else if (River.Rank > lowTri.TriCard1.Rank)
                {
                    RankTexture = RiverRankTextureEnum.LowTri;
                }
                else
                {
                    RankTexture = RiverRankTextureEnum.MiddleTri;
                }
                break;

            case TurnBoardRankTextureEnum.TwoPairs:
                var twoPairs = new TwoPairsRankTexture(TurnBoard);
                if (River.Rank == twoPairs.HighPairCard1.Rank)
                {
                    RankTexture = RiverRankTextureEnum.HighTriLowPair;
                }
                else if (River.Rank == twoPairs.LowPairCard1.Rank)
                {
                    RankTexture = RiverRankTextureEnum.LowTriHighPair;
                }
                else if (River.Rank > twoPairs.HighPairCard1.Rank)
                {
                    RankTexture = RiverRankTextureEnum.LowTwoPairs;
                }
                else if (River.Rank > twoPairs.LowPairCard1.Rank)
                {
                    RankTexture = RiverRankTextureEnum.HighLowTwoPairs;
                }
                else
                {
                    RankTexture = RiverRankTextureEnum.HighTwoPairs;
                }
                break;

            case TurnBoardRankTextureEnum.HighPair:
                var highPair = new HighPairRankTexture(TurnBoard);
                if (River.Rank == highPair.PairCard1.Rank)
                {
                    RankTexture = RiverRankTextureEnum.HighTri;
                }
                else if (River.Rank == highPair.MiddleCard.Rank)
                {
                    RankTexture = RiverRankTextureEnum.HighTwoPairs;
                }
                else if (River.Rank == highPair.LowCard.Rank)
                {
                    RankTexture = RiverRankTextureEnum.HighLowTwoPairs;
                }
                else if (River.Rank > highPair.PairCard1.Rank)
                {
                    RankTexture = RiverRankTextureEnum.SecondPair;
                }
                else
                {
                    RankTexture = RiverRankTextureEnum.HighPair;
                }
                break;

            case TurnBoardRankTextureEnum.MiddlePair:
                var middlePair = new MiddlePairRankTexture(TurnBoard);
                if (River.Rank == middlePair.PairCard1.Rank)
                {
                    RankTexture = RiverRankTextureEnum.MiddleTri;
                }
                else if (River.Rank == middlePair.HighCard.Rank)
                {
                    RankTexture = RiverRankTextureEnum.HighTwoPairs;
                }
                else if (River.Rank == middlePair.LowCard.Rank)
                {
                    RankTexture = RiverRankTextureEnum.LowTwoPairs;
                }
                else if (River.Rank > middlePair.PairCard1.Rank)
                {
                    RankTexture = RiverRankTextureEnum.ThirdPair;
                }
                else
                {
                    RankTexture = RiverRankTextureEnum.SecondPair;
                }
                break;

            case TurnBoardRankTextureEnum.LowPair:
                var lowPair = new LowPairRankTexture(TurnBoard);
                if (River.Rank == lowPair.PairCard1.Rank)
                {
                    RankTexture = RiverRankTextureEnum.LowTri;
                }
                else if (River.Rank == lowPair.HighCard.Rank)
                {
                    RankTexture = RiverRankTextureEnum.HighLowTwoPairs;
                }
                else if (River.Rank == lowPair.MiddleCard.Rank)
                {
                    RankTexture = RiverRankTextureEnum.LowTwoPairs;
                }
                else if (River.Rank > lowPair.PairCard1.Rank)
                {
                    RankTexture = RiverRankTextureEnum.LowPair;
                }
                else
                {
                    RankTexture = RiverRankTextureEnum.ThirdPair;
                }
                break;

            case TurnBoardRankTextureEnum.Singles:
                var singles = new SinglesRankTexture(TurnBoard);
                if (River.Rank == singles.HighCard.Rank)
                {
                    RankTexture = RiverRankTextureEnum.HighPair;
                }
                else if (River.Rank == singles.SecondCard.Rank)
                {
                    RankTexture = RiverRankTextureEnum.SecondPair;
                }
                else if (River.Rank == singles.ThirdCard.Rank)
                {
                    RankTexture = RiverRankTextureEnum.ThirdPair;
                }
                else if (River.Rank == singles.LowCard.Rank)
                {
                    RankTexture = RiverRankTextureEnum.LowPair;
                }
                else
                {
                    RankTexture = RiverRankTextureEnum.Singles;
                }
                break;

            default:
                throw new InvalidOperationException();
            }
        }