如何查看数组是否具有4个相同的值。 Java

问题描述 投票:-1回答:2

我有一个扑克程序,在该程序中,我有一个方法检查数组中是否有四种。

public boolean isFourOfAKind(Card[] arr){}

我通过抓取每张纸牌值2-14将arr []更改为一个int数组,并将它们存储在单独的数组中。如何检查(有效)该数组中是否有4个整数相同?

*注意:我要传递7张卡片的阵列

我的两对方法(来自请求)

   /*
     * Returns 0 if no two pairs
     *  else returns the highest card out of the two pairs, 
     *  if two hands have the same highest pair then further inspection is needed
     */
    public static int isTwoPair(Card[] arr){
        int hold[] = new int[5];
        int values[] = new int[arr.length];
        int max = 0;
        boolean total = false;
        for(int i=0;i<arr.length;i++){
            values[i] = arr[i].getValue();
        }
        for(int i = 0;i<values.length;i++){
            for(int j = 0;j<values.length;j++){
                if(i==j){
                    continue;
                }
                if(values[i]==values[j]){
                    if(values[i]>max){
                        max = values[i];
                    }
                    int hold1 =0;
                    int hold2=0;

                    hold1 = j;
                    hold2=i;
                    int counter = 0;
                    for(int ii = 0;ii<values.length;ii++){
                        if(ii==j||ii==i){
                            continue;
                        }
                        hold[counter] = values[ii];
                        counter++;

                    }
                    //                     for(int iii: hold){
                    //                     System.out.print(" , "+ iii);
                    //                     }
                    //                     System.out.println();
                    if(isPair(hold)==0){
                        max = 0;
                        total = false;
                    }else{
                        int holdInt = isPair(hold);
                        if(holdInt>max){
                            max = holdInt;
                        }
                        total = true;
                    }
                }
            }
        }
        return max;

    }
java arrays performance control-flow poker
2个回答
0
投票

[Straight flush(递增等级,并结合Flush检查]

    [Four of a kind(相同等级的4被分组在一起)] >>
  • Full house(前两个相等,后两个相等,中间等于其中一个)
  • Straight(递增等级)
  • Three of a kind(同一级别的3个分组)
  • Two pair(两组相同等级的人)
  • One pair(同一级别的2个分组在一起)
  • [High card(最后一张卡)
  • 唯一没有益处的是Flush,并且检查不需要任何排序,因此这不是问题。
© www.soinside.com 2019 - 2024. All rights reserved.