2016-01-03 4 views
0

Я создаю карточную игру. У меня есть класс с именем Card, который содержит классы перечисления ранга и костюма.Вычисление общих значений enum Java

Ранг содержит ДВА (2), три (3), четыре (4), пять (5), SIX (6) и т.д.

У меня есть класс с именем Рука, которая содержит ArrayList типа карты , Мне нужно иметь возможность хранить общие значения карт в руке. Например. рука, которая содержит 3 из клубов и 5 бриллиантов и туз сердец, должна была бы равняться 19 (3 ​​+ 5 + 11).

Как я могу написать это на Java?

ответ

1

Предложения:

  • Дайте Enum в public int getValue() метод, который возвращает значения, содержащегося в свойстве int value (или какое бы имя вы даете это свойство).
  • В классе getValueSum() класса руки (или как вы называете этот метод) проведите по вашей команде ArrayList<Card>, суммируя значения, вызвав этот метод.
2

Пусть:

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();