public void SuitRun() { if (_valueList.Count < 2) { return; } foreach (Suits s in Enum.GetValues(typeof(Suits))) { Card[] cc = _valueList.FindAll(p => p.cardInfo.cardSuit == s).ToArray(); if (cc.Length < 4) { continue; } CardsInSet cs = new CardsInSet(); cs.handRank = HandRanks.Flush; cs.highValue = cc.Last().cardInfo.cardValue; foreach (Card card in cc) { cs.cardsInSet.Add(card); } handsToPlay.Add(cs); //handRankResult.suitRun = cc.Last().value; } }
public void HighCard() { if (_valueList.Count < 1) { return; } highCardValue = _valueList.Last().cardInfo.cardValue; CardsInSet cs = new CardsInSet(); cs.handRank = HandRanks.HighCard; cs.highValue = _valueList.Last().cardInfo.cardValue; cs.cardsInSet.Add(_valueList.Last()); handsToPlay.Add(cs); }
public void ValueRun() { if (_valueList.Count < 2) { return; } foreach (Card card in _valueList) { List <Card> runFinder = new List <Card>(); for (int j = 0; j < 7; j++) { Card runCard = _valueList.Find(p => p.cardInfo.cardValue == card.cardInfo.cardValue + j); if (runCard == null) { break; } runFinder.Add(runCard); } if (runFinder.Count < 4) { continue; } CardsInSet cs = new CardsInSet(); cs.handRank = HandRanks.Straight; cs.highValue = runFinder.Last().cardInfo.cardValue; foreach (Card card1 in runFinder) { cs.cardsInSet.Add(card1); } handsToPlay.Add(cs); //handRankResult.valueRun = runFinder.Last().value; } }
public void Pairs() { if (_valueList.Count < 2) { return; } for (int i = 0; i < 14; i++) { var cardValue = _valueList.FindAll(p => p.cardInfo.cardValue == i).ToArray(); if (cardValue.Length < 2) { continue; } CardsInSet cs; switch (cardValue.Length) { case 5: //handRankResult.quints.Add(i); continue; case 4: //handRankResult.quads.Add(i); cs = new CardsInSet(); cs.handRank = HandRanks.FourOfAKind; cs.highValue = i; foreach (Card card in cardValue) { cs.cardsInSet.Add(card); } handsToPlay.Add(cs); continue; case 3: //handRankResult.trips.Add(i); cs = new CardsInSet(); cs.handRank = HandRanks.ThreeOfAKind; cs.highValue = i; foreach (Card card in cardValue) { cs.cardsInSet.Add(card); } handsToPlay.Add(cs); continue; case 2: //handRankResult.pairs.Add(i); cs = new CardsInSet(); cs.handRank = HandRanks.Pair; cs.highValue = i; foreach (Card card in cardValue) { cs.cardsInSet.Add(card); } handsToPlay.Add(cs); continue; } } }