Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在21点游戏中增加卡片到手上_Java_Arrays_Blackjack - Fatal编程技术网

Java 在21点游戏中增加卡片到手上

Java 在21点游戏中增加卡片到手上,java,arrays,blackjack,Java,Arrays,Blackjack,当卡片上写着“addCardToHand”时,我如何将卡片添加到我的手上?我尝试了card++和hand++两者都不起作用。我的代码有问题吗,还是我遗漏了什么?我觉得我需要添加一些东西,但我不知道是什么 private AbstractCard[] hand; private int winCount; public AbstractPlayer() { hand = new AbstractCard[0]; } public AbstractPlayer(int score) {

当卡片上写着“addCardToHand”时,我如何将卡片添加到我的手上?我尝试了
card++
hand++两者都不起作用。我的代码有问题吗,还是我遗漏了什么?我觉得我需要添加一些东西,但我不知道是什么

private AbstractCard[] hand;
private int winCount; 

public AbstractPlayer() {
    hand = new AbstractCard[0];
}

public AbstractPlayer(int score) {

}

public void addCardToHand( AbstractCard card ) {
   AbstractCard[] NewHand = new AbstractCard[hand.length+1];
    for ( int i = 0; i < NewHand.length; i++) {
        NewHand[i] = hand[i];   
    }
}

public void resetHand() {
    hand = new AbstractCard[0];
}
私人抽象卡[]手;
私人温克蒙特;
公共抽象播放器(){
手=新的抽象卡[0];
}
公共抽象播放器(整数分数){
}
公共作废addCardToHand(抽象卡){
AbstractCard[]NewHand=新的AbstractCard[hand.length+1];
for(int i=0;i
我想这可能是因为
hand[]
里面什么都没有。它被创建为一个大小为0的数组(无元素),然后当你添加一张卡时,你从索引0处的
手牌[]
,但是由于
手牌[]
没有元素,它不会从任何地方拉

基本上,
hand[]
中没有一个数组包含任何元素,所以当你从
hand[0]
中提取时,那里什么都没有,因为在
hand=new AbstractCard[0]
[0]
是数组的大小

编辑:
您可能希望研究使用ArrayList()(),因为它们没有预定义的大小。在您的例子中,您正在添加元素,因此ArrayList非常有用。使用ArrayList,您不必不断创建新的数组

您可能希望跟踪具有某种状态的卡的下一个插入位置,如
private int insertCursor=0

然后,您的
addCardToHand(AbstractCard)
方法可以简单地

public void addCardToHand(AbstractCard card) {
    hand[insertCursor++] = card;
}