2011-11-21 68 views
0

我正在寫一個Java程序來做一個簡單的二十一點遊戲。Java簡單的BlackJack遊戲,java.lang.NullPointerException

我正在使用一組卡對象作爲用戶的手。

用戶手中將獲得兩張牌,但他們可以要求另一張牌,直到他們達到5張牌的限制。

因爲這個原因,我製作了5個插槽的卡片對象陣列,以便可以將更多的卡片添加到手中。

但是現在我不能在打印時打印原始手牌,或者如果用戶沒有要求完整的5張牌,因爲我的數組將有null對象。

解決此問題的最快,最簡單和最簡單的方法是什麼?

+2

使用一個列表,而不是最大容量爲5. – mre

回答

1

檢查空你做任何事情之前:

if(x[i] == null){ 
    don't.do.anything(); 
}else { 
    print.something(); 
} 

的方法是假的,但顯然嘗試類似的東西。

但正如上面的評論所說,你會更好的列表。

4

放置行以在if語句內打印卡片的值,該if語句檢查數組值是否爲空。例如:

for(int i = 0; i < cardArray.length ; i++) 
{ 
    if(cardArray[i] != null) 
     System.out.print(cardArray.value); 
} 
+0

perfectn謝謝 –

2

正如您所知,您無法訪問空對象內的任何內容。在這種情況下,您應該檢查5張卡片中的每張卡片是否在打印時爲空。

3

不要使用數組 - 使用List,也許是ArrayList。

然後,你可以簡單地說:

for (Card card : hand) { 
    System.out.println(card); 
} 

如果我假設你的卡類有一個toString()方法,和 '手' 是一個List <卡>

+0

林不知道這是正確的,因爲手可能有空元素。根據這個問題,我相信我們需要5個元素(一些爲空)。...... – jayunit100

+0

似乎手應該只有添加到它的卡的數量 - 沒有必要向列表中添加空條目來表示牌中不存在的牌。 –