【发布时间】:2013-10-29 09:53:57
【问题描述】:
我正在尝试在 java 上编写一个纸牌游戏。我正在尝试将卡片对象添加到我的数组列表中,但 MakeDeck 函数无法正常工作。
public class PileOfCards {
public ArrayList<Card> pile = new ArrayList<Card>();
Card tempo;
public PileOfCards() {
pile = new ArrayList<Card>();
}
public void MakeDeck() {
for (int i=0;i<13;i++){
tempo = new Card(i+1, "FaceDown", "Clubs");
pile.add(tempo);
}
for (int j=0;j<13;j++){
tempo = new Card(j+1, "FaceDown", "Diamonds");
pile.add(tempo);
}
for (int k=0;k<13;k++){
tempo = new Card(k+1, "FaceDown", "Hearts");
pile.add(tempo);
}
for (int l=0;l<13;l++){
tempo = new Card(l+1, "FaceDown", "Spades");
pile.add(tempo);
}
}
当我尝试打印值时,它会打印 "0, null, null" 52 次。问题是什么?看起来我无法访问 ArrayList,但我不知道为什么。
已编辑:
卡片构造函数:
public Card(int valueTemp, String suitTemp, String statusTemp) {
valueTemp = value;
suitTemp = suit;
statusTemp = status;
}
打印功能:
public void printPile(){
for(int i=0;i<pile.size();i++){
System.out.print(pile.get(i).status);
System.out.print(" ");
System.out.print(pile.get(i).suit);
System.out.print(" ");
System.out.print(pile.get(i).value);
System.out.printf("\n");
}
【问题讨论】:
-
没有看到您正在打印输出的代码,我们真的无法帮助您。我有一些关于问题所在的理论,但首先,请在您的原始帖子中添加不起作用的代码。
-
您的打印声明是什么样的?你能提供
Card的构造函数吗? -
只是一条评论说 a) 您不需要为每个循环添加一个新变量,b) 如果您要将
1添加到循环变量中,那么为什么不这样做for (int i=1; i <= 13; i++) ...跨度> -
我怀疑问题出在您的打印程序中。上面的代码显示OK。
-
我添加了打印功能代码和构造函数。