私の課題は、Java プログラムで「ヤッツィー」ゲームを作成することです。スモールストレート法以外はほぼ完成です。(それを理解することはできません。)
スモール ストレートとは、サイコロが 4 つのストレートの数字になった場合です。(例: 12334、23345、34556 など)
isSmallStraight メソッドのコードは次のとおりです (このコードは完成していません!):
public static boolean isSmallStraight(List<Die> dice) {
boolean result = false;
List<Die> copy = new ArrayList<Die>(dice);
Collections.sort(copy);
List<Die> testCase1 = new ArrayList<Die>();
testCase1.add(new Die(1));
testCase1.add(new Die(2));
testCase1.add(new Die(3));
if(copy.containsAll(testCase1)) {
result = true;
System.out.println(result);
}
return result;
}
ここでやりたいことは、メイン メソッド (List dice) から 5 つの乱数のサイコロを渡し、それらを "copy" オブジェクトに入れることです。java.util.List.containsAll()メソッド(必須)を使う必要があるので、「copy」と比較するオブジェクト「testCase1」をもう1つ作る必要があると思います。(この質問を解決する他の方法がある場合は、少なくとも java.util.containsAll() メソッドを使用するだけで問題ありません。)
ただし、dice.add(new Die(3)) を使用する場合、プログラムが 1、2、および 3 から乱数を選択することを意味します。(3 のダイではありません) - また、それはコンパイル時エラーが発生しました。
そこで、"testCase1" にはサイコロ固有の番号 1、2、3、および 4、"testCase2" には 2、3、4、および 5、" testCase3" を使用し、copy.containsAll(testCase1) を使用すると true になります。
できるだけ早く助けてください!
PS。金型のクラスは、私の教授によって既にプログラムされています。(したがって、Die クラスでは何も変更できません)。