Java простая игра в блэкджек, java.lang.NullPointerException - PullRequest
0 голосов
/ 21 ноября 2011

Я пишу Java-программу для создания простой игры в блэкджек.

Я использую массив карточных объектов в качестве руки пользователя.

пользователь получит две карты в своей руке.однако они могут просить другую карту, пока не достигнут лимита в 5 карт.

По этой причине я создал массив объектов карт с 5 слотами, чтобы можно было добавить дополнительные карты вhand.

Однако теперь я не могу напечатать оригинальную руку, когда сдается или если пользователь не запрашивает полные 5 карт, потому что в моем массиве будет null объектов.

Что такоесамый быстрый, простой и легкий способ решить эту проблему?

Ответы [ 4 ]

4 голосов
/ 21 ноября 2011

Поместите строку для печати значения карты в операторе if, который проверяет, является ли значение массива нулевым. Что-то вроде:

for(int i = 0; i < cardArray.length ; i++)
{
  if(cardArray[i] != null)
      System.out.print(cardArray.value);
}
3 голосов
/ 21 ноября 2011

Не используйте массив - используйте List, возможно, ArrayList.

Тогда вы можете просто сказать:

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

Где я предполагаю, что у вашего класса Card есть метод toString (), а 'hand' это List

2 голосов
/ 21 ноября 2011

Вы не можете получить доступ к чему-либо внутри нулевого объекта. В этом случае вы должны проверить каждую из 5 карточек, является ли она нулевой при печати.

1 голос
/ 21 ноября 2011

Проверьте на нулевое значение, прежде чем что-либо делать:

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

Методы, очевидно, фальшивы, но попробуйте что-то подобное.

Но, как сказано в комментарии выше, вам будет лучше ссписок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...