"Yahtzee"游戏Java编程

-4 java

我的任务是在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;

    }
Run Code Online (Sandbox Code Playgroud)

我想在这里做的是从主方法(List dice)传递5个随机数的骰子并将它们放入"复制"对象中.由于我需要使用java.util.List.containsAll()方法(要求),我想我需要将另一个对象"testCase1"与"copy"进行比较.(如果你有其他方法来解决这个问题,至少你使用java.util.containsAll()方法就好了.)

但是,我现在不知道的是,如果我使用dice.add(new Die(3)),它意味着程序从1,2和3中选择随机数.(不会死3) - 而且,它给了我编译时错误.

所以,我想知道如何为"testCase2"存储骰子特定数字1,2,3和4,为"testCase2"存储2,3,4和5,为" testCase3"并使用copy.containsAll(testCase1)变为true.

请尽快帮助我!

PS.模特班已经由我的教授编程.(所以,不能改变Die类中的任何一个).

Gab*_*gut 5

将数字放入a中TreeSet以摆脱重复并免费排序.

如果有以下情况,你有4个直骰子

  1. 该集合恰好包含4个数字
  2. 最大和最小之间的差异是3