EnumSet と Enum に関する質問があります。より具体的には、それらをパラメーターとして渡し、メソッドから返すことについて。
基本的に、あるクラスのメソッドにEnumの特定の要素のEnumSetを作成させたいのですが、そのクラスがEnumSetを別のクラスに渡し、新しいクラスがロジックを使用してセットから特定の要素を1つ選択し、それを必要なアクションを実行する 3 番目のクラス。それがあまりにも紛らわしい場合は、以下にいくつかのコンテキストを提供しようとしました.
いくつかのクラスを持つブラックジャック シミュレーター プログラムを作成しようとしています。私の質問に関連するクラスは、ディーラー、プレイヤー、およびハンドです。
私が抱えている問題は、Hand クラスにオプションの列挙を持たせたいということです。
enum Options { SPLIT, DOUBLE, HIT, STAND}
次に、ArrayList カード (配列リストの Integer 値は単にカードのランクを表します。スーツは重要ではありません) であるハンドの内容を調べて、Player オブジェクトが使用できるオプションを判断します。
可能なオプションを決定し、
EnumSet<Options> availableOptions = EnumSet.of(.....)
利用可能なオプションが含まれています。
Hand クラスがロジックを実行し、必要な EnumSet を作成する方法を完全に知っていますが、「EnumSet availableOptions」をパラメーターとしてプレーヤー クラスに送信し、プレーヤー クラスに playerOption() メソッドを実行させる方法を見つけるのに苦労しています。これは、ディーラーがそれに応じてカードを配るディーラー オブジェクトに 1 つの「オプション」を返します。
これはロジックのない単なるスニペットですが、列挙型セットを返すためにこれを行います:
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;
}
}