Java 创建一副牌-可能更有效地设置值?

Java 创建一副牌-可能更有效地设置值?,java,object,Java,Object,我正试图创造一副牌。套房是标准的。描述王牌给国王。但是这个值是1比10,皇后国王和杰克也是10。我很难想出更有效地初始化正确值的方法 my card类使用符号常量,表示只有当值介于1到10之间时,才会初始化字段。但当我尝试设置大于10的值时。该值仍在更改。我知道我错过了什么 这些是我的常量和类卡片的setter方法 public static final int MIN = 1; public static final int MAX = 10; /** * @param used to s

我正试图创造一副牌。套房是标准的。描述王牌给国王。但是这个值是1比10,皇后国王和杰克也是10。我很难想出更有效地初始化正确值的方法

my card类使用符号常量,表示只有当值介于1到10之间时,才会初始化字段。但当我尝试设置大于10的值时。该值仍在更改。我知道我错过了什么

这些是我的常量和类卡片的setter方法

public static final int MIN = 1;
public static final int MAX = 10;

/**
 * @param used to set the value field as an int
 */
public void setValue(int value){

    if(value >= MIN && value <= MAX){

        this.suit = suit;
    } else {
        
        System.out.print("Please input a suit");
    
    }
}
这是我在甲板类中的粗糙方法,尽管我给我的甲板卡片命名

/**
 * loads deck with cards
 */
public void loadDeck(){
   int value = 1;
   int counter= 0;
   for(int suits = 0; suits < 4; suits++){
        
       for(int description = 0; description < 13; description++){

            int index = 0;
            
            card[index] = new Card (DESCRIPTIONS[description], SUITS[suits], value);
           
            System.out.println(card[index].getSuit() + card[index].getDescription()
                + card[index].getValue());

            index++;

            if(value == 10) {
                
                value--;
                counter++;
                if(counter == 4) {
                    value = 0;
                    counter = 0;
                }

            }
            value++;
        }

    }

}
/**
*用卡片装点甲板
*/
公共空甲板(){
int值=1;
int计数器=0;
对于(int suits=0;suits<4;suits++){
for(int description=0;description<13;description++){
int指数=0;
卡片[索引]=新卡片(说明[说明]、套装[套装]、价值);
System.out.println(卡片[index].getSuit()+卡片[index].getDescription()
+卡片[index].getValue();
索引++;
如果(值==10){
价值--;
计数器++;
如果(计数器==4){
数值=0;
计数器=0;
}
}
值++;
}
}
}

您需要将卡片分数设置为与您的卡片面不同的属性

卡片

  • 脸(王牌..国王)
  • 颜色(黑桃、红桃、钻石、梅花)
这允许您正常渲染卡。
您的计分函数也可以简单地返回一个值。您的意思是您需要将卡片从
Ace
Ten
的值设置为1..10和
Jack
Queen
King
应该为任何套装指定值=0?10的Ace应该是1..10,而King-Queen-King应该都是10,所以这应该可以正常工作:
新卡(说明[说明],套装[说明],说明<10?说明+1:0)
,然后
计数器
变得多余。我发现这是因为我的索引总是设置为0是的,这是一个很好的错误-您创建一张卡,打印它,并期望它存在于阵列中:)
/**
 * loads deck with cards
 */
public void loadDeck(){
   int value = 1;
   int counter= 0;
   for(int suits = 0; suits < 4; suits++){
        
       for(int description = 0; description < 13; description++){

            int index = 0;
            
            card[index] = new Card (DESCRIPTIONS[description], SUITS[suits], value);
           
            System.out.println(card[index].getSuit() + card[index].getDescription()
                + card[index].getValue());

            index++;

            if(value == 10) {
                
                value--;
                counter++;
                if(counter == 4) {
                    value = 0;
                    counter = 0;
                }

            }
            value++;
        }

    }

}
int getScore() {
    return Math.max( face, 10);
}