我的任务是在 Java 程序上制作“Yahtzee”游戏。除了 Small Straight 方法外,我几乎完成了。(无法弄清楚。)
小顺是当骰子得到 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 个随机数的骰子并将它们放入“复制”对象中。由于我需要使用 java.util.List.containsAll() 方法(要求),我想我需要使另一个对象“testCase1”与“副本”进行比较。(如果你有其他方法来解决这个问题,至少你可以使用 java.util.containsAll() 方法。)
但是,我现在不知道的是,如果我使用 dice.add(new Die(3)),这意味着程序会从 1,2 和 3 中选择随机数。(不是 3 号骰子)-另外,它给了我编译时错误。
所以,我想知道如何为“testCase1”存储骰子特定数字 1、2、3 和 4,为“testCase2”存储 2、3、4 和 5,为“”存储 3、4、5 和 6 testCase3" 并使用 copy.containsAll(testCase1) 变为 true。
请尽快帮助我!
PS。我的教授已经编写了模具课程。(因此,不能更改 Die 类中的任何内容)。