这几乎是我的问题。 我洗牌我的牌组并展示牌以确保它洗牌(完美地运作)。 我玩我的二十一点游戏,完美地工作。 我再次给我的牌组洗牌,再次展示牌,但它不起作用。 回答你们可能会问的一些问题: 1.整个程序处于一个很长的循环中,除非我选择退出游戏作为选项,否则程序不会结束。 2.我试图再次显示我的牌组,而不是第二次洗牌,它运作正常。
public Card deal()
{
Card temp;
temp = storage[top];
storage[top] = null;
top++;
return temp;
}
public void shuffle()
{
int n = storage.length;
for (int i = 0; i < storage.length; i++)
{
// Get a random index of the array past i.
int random = i + (int) (Math.random() * (n - i));
// Swap the random element with the present element.
Card randomElement = storage[random];
storage[random] = storage[i];
storage[i] = randomElement;
}
}
public void display ()
{
for (int i = top; i<52; i++)
storage[i].display();
}
这是我的堆栈跟踪 线程“main”java.lang.NullPointerException中的异常 C的J 在blackjack.Deck.display(Deck.java:104) 在blackjack.BlackJack.main(BlackJack.java:55) Java结果:1
case 3:
{
myDeck.display();
break;
}
和来自deck.display的代码
public void display ()
{
for (int i = top; i<storage.length; i++)
storage[i].display();
}
答案 0 :(得分:0)
你永远不会重置你的顶级变量,我认为你需要这样做。 发布堆栈跟踪和其余代码。