Java 在21点游戏中增加卡片到手上
当卡片上写着“addCardToHand”时,我如何将卡片添加到我的手上?我尝试了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) {
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;
}