Метод, возвращающий перечисление
У меня есть вопрос, касающийся EnumSet и Enum. Точнее, о передаче их в качестве параметров и возврате их из методов.
По сути, я хочу, чтобы метод в одном классе создал EnumSet для определенных элементов Enum, а не для того, чтобы указанный класс передавал EnumSet другому классу, где новый класс использует логику для выбора одного конкретного элемента из набора и передачи его в третий класс, который выполняет желаемое действие. Если это слишком запутанно, я постарался представить некоторый контекст ниже.
Я пытаюсь создать программу-симулятор блэкджека, в которой есть несколько классов. Классы, относящиеся к моему вопросу, это Dealer, Player и Hand.
У меня проблема в том, что я хочу, чтобы класс Hand имел перечисление опций, например
enum Options { SPLIT, DOUBLE, HIT, STAND}
Затем я хочу, чтобы рука проверила содержимое руки, которая представляет собой карты ArrayList (значение Integer в списке массивов просто представляет ранг карт, масть не важна), чтобы определить, какие опции доступен для объекта Player.
Я хотел бы получить метод getPlayerOptions() в классе Hand, который определяет возможные параметры и создает
EnumSet<Options> availableOptions = EnumSet.of(.....)
содержащий доступные варианты.
Я полностью знаю, как класс Hand может выполнять логику и создавать нужный мне EnumSet, но я изо всех сил пытаюсь выяснить, как отправить "EnumSet availableOptions" в класс проигрывателя в качестве параметра и как заставить класс проигрывателя запустить метод playerOption() который возвращает одну "опцию" объекту Dealer, где дилер сдает карты соответственно.
это просто фрагмент без какой-либо логики, но он работает для возврата набора enum:
import java.util.EnumSet;
public class Hand {
enum Options {
SPLIT, FREEDOUBLE, DOUBLE, HIT, STAND
}
public EnumSet getOptions() {
EnumSet<Options> playerOptions = EnumSet.of(Options.STAND);
return playerOptions;
}
}