对于家庭作业,我得到了一个 Card 类,其中列举了 Rank 和 Suit 的类型。我需要比较两手牌(每手是ArrayList
5 张牌)并决定获胜者。
这个isStraight()
功能真的很困扰我,因为我必须在 Ace 之后重新开始计数。例如,
女王、国王、王牌、二、三
还是算直的。编写此功能的最佳方法是什么?
如果有帮助,这是 Rank/Suit 枚举类型代码。
public enum Rank
{
TWO(2), THREE(3), FOUR(4), FIVE(5), SIX(6), SEVEN(7), EIGHT(8), NINE(9),
TEN(10), JACK(11), QUEEN(12), KING(13), ACE(14);
private final int points;
private Rank(int points)
{
this.points = points;
}
public int points()
{
return this.points;
}
}
public enum Suit
{
DIAMONDS, CLUBS, HEARTS, SPADES;
}