我正在构建一个纸牌游戏。我有一个名为Card的类,它包含等级和套装的枚举类。
等级包括二(2)、三(3)、四(4)、五(5)、六(6)等
我还有一个名为Hand的类,它包含一个Card类型的数组列表。我需要能够将牌的总价值存储在手中。例如,一只包含梅花3、钻石5和红心王牌的手牌需要等于19(3+5+11)。
我该如何用Java写这篇文章?
假设:
enum Card {
TWO(2), THREE(3), FOUR(4), FIVE(5), SIX(6);
private final int value;
private Card(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
在java 8:中
List<Card> cards = ....;
cards.stream().mapToInt(Card::getValue).sum();
建议:
- 为您的枚举指定一个
public int getValue()
方法,该方法返回int value
属性(或您为该属性指定的任何名称)所持有的值 - 在Hand类的
getValueSum()
(或您称之为此方法的任何方法)中,迭代手的ArrayList<Card>
,通过调用此方法求和值