public override Hand newHand(Hand Hand) { var StraightCards = new List<Card>(); Card PreviousCard = null; var Cards = Hand.getCards(); Cards.Sort((Card1, Card2) => { return Card1.compareTo(Card2); }); foreach (var Card in Cards) { if (PreviousCard is Card) { if (Card.compareFaceValue(PreviousCard) == 0) { continue; } else if (PreviousCard.isAce() && Card.getFaceValue() == 5) { // Wheels are Straights too, you know StraightCards.Add(Card); } else if (PreviousCard.getFaceValue() - 1 == Card.getFaceValue()) { StraightCards.Add(Card); } else { StraightCards = new List<Card> { Card }; } } else { StraightCards.Add(Card); } PreviousCard = Card; if (StraightCards.Count == 5) { return new Straight(StraightCards); } } return null; }
public override Hand newHand(Hand Hand) { var SpadesCards = new List<Card>(); var HeartsCards = new List<Card>(); var ClubsCards = new List<Card>(); var DiamondsCards = new List<Card>(); var Cards = Hand.getCards(); Cards.Sort((Card1, Card2) => { return Card1.compareTo(Card2); }); foreach (var Card in Cards) { switch (Card.getSuit()) { case Suit.SPADES: if (canAddCardTo(SpadesCards, Card)) { SpadesCards.Add(Card); if (SpadesCards.Count == 5) { return new StraightFlush(SpadesCards); } } break; case Suit.HEARTS: if (canAddCardTo(HeartsCards, Card)) { HeartsCards.Add(Card); if (HeartsCards.Count == 5) { return new StraightFlush(HeartsCards); } } break; case Suit.CLUBS: if (canAddCardTo(ClubsCards, Card)) { ClubsCards.Add(Card); if (ClubsCards.Count == 5) { return new StraightFlush(ClubsCards); } } break; case Suit.DIAMONDS: if (canAddCardTo(DiamondsCards, Card)) { DiamondsCards.Add(Card); if (DiamondsCards.Count == 5) { return new StraightFlush(DiamondsCards); } } break; } } return null; }
public override Hand newHand(Hand Hand) { var SpadesCards = new List<Card>(); var HeartsCards = new List<Card>(); var ClubsCards = new List<Card>(); var DiamondsCards = new List<Card>(); foreach (var Card in Hand.getCards()) { switch (Card.getSuit()) { case Suit.SPADES: SpadesCards.Add(Card); if (SpadesCards.Count == 5) { return new Flush(SpadesCards); } break; case Suit.HEARTS: HeartsCards.Add(Card); if (HeartsCards.Count == 5) { return new Flush(HeartsCards); } break; case Suit.CLUBS: ClubsCards.Add(Card); if (ClubsCards.Count == 5) { return new Flush(ClubsCards); } break; case Suit.DIAMONDS: DiamondsCards.Add(Card); if (DiamondsCards.Count == 5) { return new Flush(DiamondsCards); } break; } } return null; }
public override Hand newHand(Hand Hand) { return new TwoPair(Hand.getCards()); }