首页 > 解决方案 > 计算一手牌

问题描述

我正在尝试计算一手牌的总价值。如果没有 ace,则 final_listarray 中将有 1 个元素。如果有一张 A,将有 2 个元素来表示一手牌的总可能价值(因为 A 可以是 1 或 11)。

出于某种原因,我的数组只输出 [0,0],没有我想要的。

(arraylist1 只是我保存每张牌的值的数组。在这种情况下,一张 ace 将同时保存 1 和 11,任何其他值都将保存 1 个元素)

        int max_excluding_Ace=0;
        int max_adding_1=max_excluding_Ace;
        int max_adding_11=max_excluding_Ace;

        for (int i = 0; i < arraylist1.size(); i++) {
        
            //Add values without aces
            if ((arraylist1.get(i)!=1) && (arraylist1.get(i)!=11)) {
                max_excluding_Ace += arraylist1.get(i);
            

            }
    
            //ace               
            //Add values with different combinations of the ace
            else if ((arraylist1.get(i)==1)) {
                max_adding_1 +=1;
            }
        
            else if ((arraylist1.get(i)==11)) {
                max_adding_11 +=11;
            }
        }
        if (max_adding_1 != max_excluding_Ace){
            final_listarray.add(max_adding_1);
            final_listarray.add(max_adding_11);

        }
        else {
            final_listarray.add(max_excluding_Ace);
        }

        return final_listarray;
    

标签: java

解决方案


推荐阅读