public LowTriRankTexture(TurnBoard board) { FlopBoard = board.FlopBoard; if (FlopBoard.RankTexture == FlopBoardRankTextureEnum.ThreeSome) { SingleCard = board.TurnCard; if (FlopBoard.Flop1.Rank >= SingleCard.Rank) { throw new InvalidOperationException(); } TriCard1 = FlopBoard.Flop1; TriCard2 = FlopBoard.Flop2; TriCard3 = FlopBoard.Flop3; } else if (FlopBoard.RankTexture == FlopBoardRankTextureEnum.LowPair) { var cards = new List <Card>() { FlopBoard.Flop1, FlopBoard.Flop2, FlopBoard.Flop3, board.TurnCard }; cards.Sort(); if (!(cards[0].Rank == cards[1].Rank && cards[1].Rank == cards[2].Rank)) { throw new InvalidOperationException(); } SingleCard = cards[3]; TriCard1 = cards[0]; TriCard2 = cards[1]; TriCard3 = cards[2]; } else { throw new InvalidOperationException(); } }
public SinglesRankTexture(TurnBoard board) { FlopBoard = board.FlopBoard; if (board.FlopBoard.RankTexture != FlopBoardRankTextureEnum.Singles) { throw new InvalidOperationException(); } if (board.TurnCard.Rank == FlopBoard.Flop1.Rank || board.TurnCard.Rank == FlopBoard.Flop2.Rank || board.TurnCard.Rank == FlopBoard.Flop3.Rank) { throw new InvalidOperationException(); } var cards = new List <Card>() { FlopBoard.Flop1, FlopBoard.Flop2, FlopBoard.Flop3, board.TurnCard }; cards.Sort(); cards.Reverse(); HighCard = cards[0]; SecondCard = cards[1]; ThirdCard = cards[2]; LowCard = cards[3]; }
public SinglesRankTexture(RiverBoard board) { TurnBoard = board.TurnBoard; if (TurnBoard.RankTexture != TurnBoardRankTextureEnum.Singles) { throw new InvalidOperationException(); } var singlesTexture = new Turn.TurnBoardRankTextures.SinglesRankTexture(TurnBoard); if (board.River.Rank == singlesTexture.HighCard.Rank || board.River.Rank == singlesTexture.SecondCard.Rank || board.River.Rank == singlesTexture.ThirdCard.Rank || board.River.Rank == singlesTexture.LowCard.Rank) { throw new InvalidOperationException(); } var cards = new List <Card>() { board.River, singlesTexture.HighCard, singlesTexture.SecondCard, singlesTexture.ThirdCard, singlesTexture.LowCard }; cards.Sort(); HighCard = cards[4]; SecondCard = cards[3]; ThirdCard = cards[2]; FourthCard = cards[1]; LowCard = cards[0]; }
public SuitedTwoTexture(TurnBoard turnBoard) { var cards = new List <Card>() { turnBoard.FlopBoard.Flop1, turnBoard.FlopBoard.Flop2, turnBoard.FlopBoard.Flop3, turnBoard.TurnCard }; if (cards.Count(c => c.Suit == SuitEnum.Heart) == 2) { SuitedSuit = SuitEnum.Heart; } if (cards.Count(c => c.Suit == SuitEnum.Spade) == 2) { SuitedSuit = SuitEnum.Spade; } if (cards.Count(c => c.Suit == SuitEnum.Diamond) == 2) { SuitedSuit = SuitEnum.Diamond; } if (cards.Count(c => c.Suit == SuitEnum.Club) == 2) { SuitedSuit = SuitEnum.Club; } SuitedRanks = cards.Where(c => c.Suit == SuitedSuit).Select(c => c.Rank).ToList(); }
public SuitedThreeTexture(TurnBoard turnBoard) { if (turnBoard.FlopBoard.SuitTexture == FlopBoardSuitTextureEnum.SuitedThree) { SuitedSuit = turnBoard.FlopBoard.Flop1.Suit; SuitedRanks = new List <RankEnum>() { turnBoard.FlopBoard.Flop1.Rank, turnBoard.FlopBoard.Flop2.Rank, turnBoard.FlopBoard.Flop3.Rank }; } else if (turnBoard.FlopBoard.SuitTexture == FlopBoardSuitTextureEnum.SuitedTwo) { SuitedSuit = turnBoard.TurnCard.Suit; SuitedRanks = new List <RankEnum>(); SuitedRanks.Add(turnBoard.TurnCard.Rank); if (turnBoard.FlopBoard.Flop1.Suit == SuitedSuit) { SuitedRanks.Add(turnBoard.FlopBoard.Flop1.Rank); } if (turnBoard.FlopBoard.Flop2.Suit == SuitedSuit) { SuitedRanks.Add(turnBoard.FlopBoard.Flop2.Rank); } if (turnBoard.FlopBoard.Flop3.Suit == SuitedSuit) { SuitedRanks.Add(turnBoard.FlopBoard.Flop3.Rank); } if (SuitedRanks.Count != 3) { throw new InvalidOperationException(); } } }
public TwoPairsRankTexture(TurnBoard turnBoard) { FlopBoard = turnBoard.FlopBoard; if (FlopBoard.RankTexture == FlopBoardRankTextureEnum.HighPair) { var highPairBoard = new Flop.FlopBoardRankTextures.HighPairRankTexture(FlopBoard); if (highPairBoard.SingleCard.Rank != turnBoard.TurnCard.Rank) { throw new InvalidOperationException(); } HighPairCard1 = highPairBoard.PairCard1; HighPairCard2 = highPairBoard.PairCard2; LowPairCard1 = highPairBoard.SingleCard; LowPairCard2 = turnBoard.TurnCard; } else if (FlopBoard.RankTexture == FlopBoardRankTextureEnum.LowPair) { var lowPairBoard = new Flop.FlopBoardRankTextures.LowPairRankTexture(FlopBoard); if (lowPairBoard.SingleCard.Rank != turnBoard.TurnCard.Rank) { throw new InvalidOperationException(); } HighPairCard1 = lowPairBoard.SingleCard; HighPairCard2 = turnBoard.TurnCard; LowPairCard1 = lowPairBoard.PairCard1; LowPairCard2 = lowPairBoard.PairCard2; } else { throw new InvalidOperationException(); } }
public HighTriLowPairRankTexture(RiverBoard board) { TurnBoard = board.TurnBoard; switch (TurnBoard.RankTexture) { case TurnBoardRankTextureEnum.HighTri: var highTriTexture = new Turn.TurnBoardRankTextures.HighTriRankTexture(TurnBoard); TriCard1 = highTriTexture.TriCard1; TriCard2 = highTriTexture.TriCard2; TriCard3 = highTriTexture.TriCard3; if (highTriTexture.SingleCard.Rank != board.River.Rank) { throw new InvalidOperationException(); } PairCard1 = highTriTexture.SingleCard; PairCard2 = board.River; break; case TurnBoardRankTextureEnum.TwoPairs: var twoPairsTexture = new TwoPairsRankTexture(TurnBoard); if (twoPairsTexture.HighPairCard1.Rank != board.River.Rank) { throw new InvalidOperationException(); } TriCard1 = twoPairsTexture.HighPairCard1; TriCard2 = twoPairsTexture.HighPairCard2; TriCard3 = board.River; PairCard1 = twoPairsTexture.LowPairCard1; PairCard2 = twoPairsTexture.LowPairCard2; break; default: throw new InvalidOperationException(); } }
public SuitedTwoPairsTexture(TurnBoard turnBoard) { if (turnBoard.FlopBoard.SuitTexture == FlopBoardSuitTextureEnum.SuitedTwo) { Suit1Ranks = new List <RankEnum>(); Suit2Ranks = new List <RankEnum>(); SuitedSuit1 = turnBoard.TurnCard.Suit; Suit1Ranks.Add(turnBoard.TurnCard.Rank); if (turnBoard.FlopBoard.Flop1.Suit != SuitedSuit1) { SuitedSuit2 = turnBoard.FlopBoard.Flop1.Suit; } else if (turnBoard.FlopBoard.Flop2.Suit != SuitedSuit1) { SuitedSuit2 = turnBoard.FlopBoard.Flop2.Suit; } else if (turnBoard.FlopBoard.Flop3.Suit != SuitedSuit1) { SuitedSuit2 = turnBoard.FlopBoard.Flop3.Suit; } else { throw new InvalidOperationException(); } if (turnBoard.FlopBoard.Flop1.Suit == SuitedSuit1) { Suit1Ranks.Add(turnBoard.FlopBoard.Flop1.Rank); } else { Suit2Ranks.Add(turnBoard.FlopBoard.Flop1.Rank); } if (turnBoard.FlopBoard.Flop2.Suit == SuitedSuit1) { Suit1Ranks.Add(turnBoard.FlopBoard.Flop2.Rank); } else { Suit2Ranks.Add(turnBoard.FlopBoard.Flop2.Rank); } if (turnBoard.FlopBoard.Flop3.Suit == SuitedSuit1) { Suit1Ranks.Add(turnBoard.FlopBoard.Flop3.Rank); } else { Suit2Ranks.Add(turnBoard.FlopBoard.Flop3.Rank); } } else { throw new InvalidOperationException(); } }
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(); } }
public TurnMultiwayCallingStrategy(TurnBoard turnBoard, HoldingHoles heroHoles) { _turnBoard = turnBoard; _turnFolder = new TurnFolder(); var fiveCardsEnumerator = new TurnFiveCardsEnumerator(turnBoard, heroHoles); _probabilityCalculator = new VillainProbabilityCalculator( grid => _turnFolder.ShouldAGridFoldToBoardByRank(grid, _turnBoard), grid => _turnFolder.ShouldAGridFoldToBoardBySuit(grid, _turnBoard, heroHoles), fiveCardsEnumerator.Enumerate); }
public HighPairRankTexture(RiverBoard board) { TurnBoard = board.TurnBoard; switch (TurnBoard.RankTexture) { case TurnBoardRankTextureEnum.HighPair: var highPairTexture = new Turn.TurnBoardRankTextures.HighPairRankTexture(TurnBoard); if (board.River.Rank >= highPairTexture.PairCard1.Rank) { throw new InvalidOperationException(); } if (board.River.Rank == highPairTexture.MiddleCard.Rank || board.River.Rank == highPairTexture.LowCard.Rank) { throw new InvalidOperationException(); } PairedCard1 = highPairTexture.PairCard1; PairedCard2 = highPairTexture.PairCard2; var singles = new List <Card>() { highPairTexture.MiddleCard, highPairTexture.LowCard, board.River }; singles.Sort(); LowCard = singles[0]; ThirdCard = singles[1]; SecondCard = singles[2]; break; case TurnBoardRankTextureEnum.Singles: var singlesPairTexture = new Turn.TurnBoardRankTextures.SinglesRankTexture(TurnBoard); if (board.River.Rank != singlesPairTexture.HighCard.Rank) { throw new InvalidOperationException(); } PairedCard1 = singlesPairTexture.HighCard; PairedCard2 = board.River; SecondCard = singlesPairTexture.SecondCard; ThirdCard = singlesPairTexture.ThirdCard; LowCard = singlesPairTexture.LowCard; break; default: throw new InvalidOperationException(); } }
public HighLowTwoPairsRankTexture(RiverBoard board) { TurnBoard = board.TurnBoard; switch (TurnBoard.RankTexture) { case TurnBoardRankTextureEnum.HighPair: var highPairTexture = new Turn.TurnBoardRankTextures.HighPairRankTexture(TurnBoard); if (board.River.Rank != highPairTexture.LowCard.Rank) { throw new InvalidOperationException(); } HighPairCard1 = highPairTexture.PairCard1; HighPairCard2 = highPairTexture.PairCard2; MiddleCard = highPairTexture.MiddleCard; LowPairCard1 = highPairTexture.LowCard; LowPairCard2 = board.River; break; case TurnBoardRankTextureEnum.LowPair: var lowPairTexture = new Turn.TurnBoardRankTextures.LowPairRankTexture(TurnBoard); if (board.River.Rank != lowPairTexture.HighCard.Rank) { throw new InvalidOperationException(); } HighPairCard1 = lowPairTexture.HighCard; HighPairCard2 = board.River; MiddleCard = lowPairTexture.MiddleCard; LowPairCard1 = lowPairTexture.PairCard1; LowPairCard2 = lowPairTexture.PairCard2; break; case TurnBoardRankTextureEnum.TwoPairs: var twoPairsTexture = new TwoPairsRankTexture(TurnBoard); if (board.River.Rank >= twoPairsTexture.HighPairCard1.Rank || board.River.Rank <= twoPairsTexture.LowPairCard1.Rank) { throw new InvalidOperationException(); } HighPairCard1 = twoPairsTexture.HighPairCard1; HighPairCard2 = twoPairsTexture.HighPairCard2; MiddleCard = board.River; LowPairCard1 = twoPairsTexture.LowPairCard1; LowPairCard2 = twoPairsTexture.LowPairCard2; break; default: throw new InvalidOperationException(); } }
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(); } }
public SuitedFourTexture(TurnBoard turnBoard) { if (turnBoard.SuitTexture != TurnBoardSuitTextureEnum.SuitedFour) { throw new InvalidOperationException(); } SuitedSuit = turnBoard.TurnCard.Suit; Ranks = new List <RankEnum>() { turnBoard.FlopBoard.Flop1.Rank, turnBoard.FlopBoard.Flop2.Rank, turnBoard.FlopBoard.Flop3.Rank, turnBoard.TurnCard.Rank }; }
private Func <Card, Card, Tuple <SuitHandGradeEnum, int> > GetTurnGridGrader(TurnBoard turnBoard) { switch (turnBoard.SuitTexture) { case TurnBoardSuitTextureEnum.SuitedFour: return((c1, c2) => { var tuple = new Turn.TurnBoardSuitTextures.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(); } }
public FoursomeRankTexture(TurnBoard board) { if (board.FlopBoard.RankTexture != FlopBoardRankTextureEnum.ThreeSome) { throw new InvalidOperationException(); } if (board.FlopBoard.Flop1.Rank != board.TurnCard.Rank) { throw new InvalidOperationException(); } FlopBoard = board.FlopBoard; FoursomeCard1 = board.FlopBoard.Flop1; FoursomeCard2 = board.FlopBoard.Flop2; FoursomeCard3 = board.FlopBoard.Flop3; FoursomeCard4 = board.TurnCard; }
public FoursomeRankTexture(RiverBoard board) { TurnBoard = board.TurnBoard; switch (TurnBoard.RankTexture) { case TurnBoardRankTextureEnum.Foursome: FoursomeCard1 = TurnBoard.FlopBoard.Flop1; FoursomeCard2 = TurnBoard.FlopBoard.Flop2; FoursomeCard3 = TurnBoard.FlopBoard.Flop3; FoursomeCard4 = TurnBoard.TurnCard; SingleCard = board.River; break; case TurnBoardRankTextureEnum.HighTri: var highTriTexture = new Turn.TurnBoardRankTextures.HighTriRankTexture(TurnBoard); FoursomeCard1 = highTriTexture.TriCard1; FoursomeCard2 = highTriTexture.TriCard2; FoursomeCard3 = highTriTexture.TriCard3; if (board.River.Rank != FoursomeCard1.Rank) { throw new InvalidOperationException(); } FoursomeCard4 = board.River; SingleCard = highTriTexture.SingleCard; break; case TurnBoardRankTextureEnum.LowTri: var lowTriTexture = new Turn.TurnBoardRankTextures.LowTriRankTexture(TurnBoard); FoursomeCard1 = lowTriTexture.TriCard1; FoursomeCard2 = lowTriTexture.TriCard2; FoursomeCard3 = lowTriTexture.TriCard3; if (board.River.Rank != FoursomeCard1.Rank) { throw new InvalidOperationException(); } FoursomeCard4 = board.River; SingleCard = lowTriTexture.SingleCard; break; default: throw new InvalidOperationException(); } }
public LowPairRankTexture(RiverBoard board) { TurnBoard = board.TurnBoard; switch (TurnBoard.RankTexture) { case TurnBoardRankTextureEnum.LowPair: var lowPairTexture = new Turn.TurnBoardRankTextures.LowPairRankTexture(TurnBoard); if (board.River.Rank <= lowPairTexture.PairCard1.Rank || board.River.Rank == lowPairTexture.HighCard.Rank || board.River.Rank == lowPairTexture.MiddleCard.Rank) { throw new InvalidOperationException(); } var cards = new List <Card>() { lowPairTexture.HighCard, lowPairTexture.MiddleCard, board.River }; cards.Sort(); HighCard = cards[2]; SecondCard = cards[1]; ThirdCard = cards[0]; PairedCard1 = lowPairTexture.PairCard1; PairedCard2 = lowPairTexture.PairCard2; break; case TurnBoardRankTextureEnum.Singles: var singlesTexture = new Turn.TurnBoardRankTextures.SinglesRankTexture(TurnBoard); if (board.River.Rank != singlesTexture.LowCard.Rank) { throw new InvalidOperationException(); } HighCard = singlesTexture.HighCard; SecondCard = singlesTexture.SecondCard; ThirdCard = singlesTexture.ThirdCard; PairedCard1 = singlesTexture.LowCard; PairedCard2 = board.River; break; default: throw new InvalidOperationException(); } }
public LowTriRankTexture(RiverBoard board) { TurnBoard = board.TurnBoard; switch (TurnBoard.RankTexture) { case TurnBoardRankTextureEnum.LowTri: var lowTriTexture = new Turn.TurnBoardRankTextures.LowTriRankTexture(TurnBoard); if (board.River.Rank == lowTriTexture.SingleCard.Rank || board.River.Rank < lowTriTexture.TriCard1.Rank) { throw new InvalidOperationException(); } HighCard = board.River.Rank > lowTriTexture.SingleCard.Rank ? board.River : lowTriTexture.SingleCard; MiddleCard = board.River.Rank < lowTriTexture.SingleCard.Rank ? board.River : lowTriTexture.SingleCard; TriCard1 = lowTriTexture.TriCard1; TriCard2 = lowTriTexture.TriCard2; TriCard3 = lowTriTexture.TriCard3; break; case TurnBoardRankTextureEnum.LowPair: var lowPairTexture = new Turn.TurnBoardRankTextures.LowPairRankTexture(TurnBoard); if (board.River.Rank != lowPairTexture.PairCard1.Rank) { throw new InvalidOperationException(); } HighCard = lowPairTexture.HighCard; MiddleCard = lowPairTexture.MiddleCard; TriCard1 = lowPairTexture.PairCard1; TriCard2 = lowPairTexture.PairCard2; TriCard3 = board.River; break; default: throw new InvalidOperationException(); } }
public HighTriRankTexture(RiverBoard board) { TurnBoard = board.TurnBoard; switch (TurnBoard.RankTexture) { case TurnBoardRankTextureEnum.HighTri: var highTriTexture = new Turn.TurnBoardRankTextures.HighTriRankTexture(TurnBoard); if (board.River.Rank == highTriTexture.SingleCard.Rank || board.River.Rank == highTriTexture.TriCard1.Rank) { throw new InvalidOperationException(); } TriCard1 = highTriTexture.TriCard1; TriCard2 = highTriTexture.TriCard2; TriCard3 = highTriTexture.TriCard3; MiddleCard = highTriTexture.SingleCard.Rank > board.River.Rank ? highTriTexture.SingleCard : board.River; LowCard = highTriTexture.SingleCard.Rank < board.River.Rank ? highTriTexture.SingleCard : board.River; break; case TurnBoardRankTextureEnum.HighPair: var highPairTexture = new Turn.TurnBoardRankTextures.HighPairRankTexture(TurnBoard); if (board.River.Rank != highPairTexture.PairCard1.Rank) { throw new InvalidOperationException(); } TriCard1 = highPairTexture.PairCard1; TriCard2 = highPairTexture.PairCard2; TriCard3 = board.River; MiddleCard = highPairTexture.MiddleCard; LowCard = highPairTexture.LowCard; break; default: throw new InvalidOperationException(); } }
public HighPairRankTexture(TurnBoard board) { FlopBoard = board.FlopBoard; var cards = new List <Card>() { FlopBoard.Flop1, FlopBoard.Flop2, FlopBoard.Flop3, board.TurnCard }; cards.Sort(); if (cards[2].Rank != cards[3].Rank) { throw new InvalidOperationException(); } if (cards[0].Rank == cards[1].Rank || cards[1].Rank == cards[2].Rank) { throw new InvalidOperationException(); } PairCard1 = cards[2]; PairCard2 = cards[3]; LowCard = cards[0]; MiddleCard = cards[1]; }
public OffsuitTexture(TurnBoard turnBoard) { }
public RiverBoard(TurnBoard turnBoard, Card river) { TurnBoard = turnBoard; River = river; SetupTexture(); }