我已经使用C#实现了德州扑克游戏。
我写了诸如Card,Deck,Player,Table等类。
例如:

    Player player1 = new Player("player1");
    player1.Card1 = new Card(4, Symbol.Clubs, true);
    player1.Card2 = new Card(5, Symbol.Clubs, true);

    Card card1 = new Card(4, Symbol.Clubs, true);
    Card card2 = new Card(7, Symbol.Hearts, true);
    Card card3 = new Card(2, Symbol.Spades, true);
    Card card4 = new Card(4, Symbol.Diamonds, true);
    Card card5 = new Card(4, Symbol.Clubs, true);
    Card[] tableCards = {card1, card2, card3, card4, card5};

我还写了一些评估卡数组的方法,例如IsFlush,IsStraight,IsPair等。
我的问题是,如果我有7张牌(2手, table 上有5张),我应该如何选择最佳手牌组合。
在此代码示例中,它是{4,4,4,4,7}。

最佳答案

不要用五张牌来写代码。取而代之的是一般编写它。所以,

ContainsStraightFlush
ContainsFourOfAKind
ContainsFullHouse

等等会吃掉一张纸牌的集合,并且如果这些纸牌的某个子集是同花顺,一张是四张等,则返回true。

然后从最高排名的手向最低位置倒退。如果这些方法之一返回true,则可以轻松挑选出满足该条件的最佳手牌。例如在
2h Kh Qh Jh Th 9h 6c
ContainsStraightFlush将返回true,然后您可以选择9h Th Jh Qh Kh作为最佳手。

关于c# - 从7张牌中挑选最好的牌(德州扑克游戏),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5874228/

10-11 15:16