我有这种方法IsFlush,它检查手牌是否齐平。我还有另一个方法SuitHist,它创建一个手里有多少个西服的直方图。 IsFlush的目的是对数组中的suits进行计数,如果5个或更多suits相同,则返回true。但是,当我尝试将SuitHist初始化为Integer数组flush时,SuitHist的参数给出了错误,对此我有什么帮助?

    public static int[] SuitHist(Card[] hand) {
        int[] histSuit = new int[4];
        for (int i = 0; i < hand.length; i++) {
            histSuit[hand[i].suit]++;
        }
        return histSuit;
    }

    public static boolean IsFlush(Cards[] deck) {
        int[] flush = SuitHist(deck);
        for (int i = 0; i < flush.length; i++) {
            for (i = 0; i < 4; i++) {
                if (flush[i] >= 5)
                    return true;
            }
        }
        return false;
    }

最佳答案

我想你有错字。 SuitHist期望使用类型为Card[]的数组,但是在IsFlush中,您将deck作为Cards[]类型。尝试像这样更改函数:

public static boolean IsFlush(Card[] deck){
....
}

关于java - IsFlush boolean 值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29798860/

10-10 01:08