我想在java上編寫一個solitiare遊戲。我試圖將卡片對象添加到我的數組列表,但MakeDeck功能無法正常工作。將對象添加到java中的數組列表
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 ++)...' –